Comment puis-je vérifier si une vue est visible ou non sur Android? [dupliquer]
cette question a déjà une réponse ici:
j'ai mis visibility
invisible de ce genre sur Android:
myImageView.setVisibility(View.INVISIBLE);
et ensuite pour le rendre visible:
myImageView.setVisibility(View.VISIBLE);
maintenant je ne sais pas si myImageView
est visible ou non, Comment puis-je le vérifier comme ceci:
if (myImageView IS VISIBLE) {
Do something
} else {
Do something else
}
Comment faire? Qu'est-ce que je dois écrire entre parenthèses?
4 réponses
Bien Que Vue.getVisibility () obtient la visibilité, ce n'est pas un simple true/false. Une vue peut avoir sa visibilité fixée à l'une de trois choses.
View.VISIBLE La vue est visible.
View.INVISIBLE La vue est invisible, mais tout espacement qu'elle prendrait normalement sera toujours utilisé. Son" invisible "
View.Parti La vue a disparu, toi ne pouvez pas le voir et ne pas prendre le "spot".
alors pour répondre à votre question, vous cherchez:
if (myImageView.getVisibility() == View.VISIBLE) {
// Its visible
} else {
// Either gone or invisible
}
Si l'image fait partie de la mise en page, il peut être "Vue.VISIBLE" mais cela ne signifie pas qu'il est dans les limites de l'écran visible. Si c'est ce que vous voulez, ça marchera:
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
}
vous devez utiliser la méthode correspondante getVisibility() . Les noms de méthode préfixés par' get 'et' set ' sont les conventions de Java pour représenter les propriétés. Certaines langues ont des constructions de langage réelles pour les propriétés, mais Java n'en fait pas partie. Donc quand vous voyez quelque chose appelé 'setX', vous pouvez être certain à 99% qu'il y a un 'getX' correspondant qui vous indiquera la valeur.