wake-up-neo.net

Wie kann ich überprüfen, ob eine Ansicht in Android sichtbar ist oder nicht?

Ich habe visibility unter Android auf unsichtbar gesetzt:

myImageView.setVisibility(View.INVISIBLE);

Und dann, um es sichtbar zu machen:

myImageView.setVisibility(View.VISIBLE);

Jetzt weiß ich nicht, ob myImageView sichtbar ist oder nicht. Wie kann ich das überprüfen:

if (myImageView IS VISIBLE) {
    Do something
} else {
    Do something else
}

Wie kann ich das machen? Was muss ich in die Klammern schreiben?

164
Martin

Obwohl View.getVisibility () die Sichtbarkeit erhält, ist es kein einfaches Wahr/Falsch. Die Sichtbarkeit einer Ansicht kann auf eines von drei Dingen festgelegt werden.

View.VISIBLE Die Ansicht ist sichtbar.

View.INVISIBLE Die Ansicht ist unsichtbar, aber jeder Abstand, den sie normalerweise einnehmen würde, wird weiterhin verwendet. Es ist "unsichtbar"

View.GONE Die Ansicht ist verschwunden, Sie können sie nicht sehen und sie nimmt nicht den "Platz" ein.

Um Ihre Frage zu beantworten, suchen Sie nach:

if (myImageView.getVisibility() == View.VISIBLE) {
    // Its visible
} else {
    // Either gone or invisible
}
447
William

Oder Sie könnten einfach verwenden

View.isShown()
113
deviato

Wenn das Bild Teil des Layouts ist, ist es möglicherweise "View.VISIBLE", dies bedeutet jedoch nicht, dass es sich innerhalb der Grenzen des sichtbaren Bildschirms befindet. Wenn Sie danach suchen; das wird funktionieren:

Rect scrollBounds = new Rect();
scrollView.getHitRect(scrollBounds);
if (imageView.getLocalVisibleRect(scrollBounds)) {
    // imageView is within the visible window
} else {
    // imageView is not within the visible window
}
52
Bill Mote

Sie würden die entsprechende Methode getVisibility () verwenden. Methodennamen mit den Präfixen 'get' und 'set' entsprechen der Java-Konvention zur Darstellung von Eigenschaften. Einige Sprachen haben tatsächliche Sprachkonstrukte für Eigenschaften, aber Java gehört nicht dazu. Wenn Sie also etwas mit der Bezeichnung 'setX' sehen, können Sie zu 99% sicher sein, dass es ein entsprechendes 'getX' gibt, das dies tut Erzählen Sie den Wert.

3
colithium