programacion - ¿Cómo puedo verificar si una vista es visible o no en Android?
manual de android en pdf (4)
Esta pregunta ya tiene una respuesta aquí:
Establecí la visibility
invisible como esta en Android:
myImageView.setVisibility(View.INVISIBLE);
Y luego para hacerlo visible:
myImageView.setVisibility(View.VISIBLE);
Ahora no sé si myImageView
está visible o no, ¿cómo puedo verificarlo así?
if (myImageView IS VISIBLE) {
Do something
} else {
Do something else
}
¿Cómo puedo hacer eso? ¿Qué debo escribir entre corchetes?
Aunque View.getVisibility () obtiene la visibilidad, no es un simple verdadero / falso. Una vista puede tener su visibilidad configurada en una de tres cosas.
View.VISIBLE La vista es visible.
View.INVISIBLE La vista es invisible, pero cualquier espaciado que normalmente ocuparía se seguirá utilizando. Es "invisible"
View.GONE La vista se ha ido, no puedes verla y no ocupa el "lugar".
Entonces, para responder a su pregunta, usted está buscando:
if (myImageView.getVisibility() == View.VISIBLE) {
// Its visible
} else {
// Either gone or invisible
}
O simplemente podrías usar
View.isShown()
Si la imagen es parte del diseño, podría ser "Ver.VISIBLE", pero eso no significa que esté dentro de los límites de la pantalla visible. Si eso es lo que buscas; esto funcionará:
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
}
Utilizarías el método correspondiente getVisibility() . Los nombres de método prefijados con ''get'' y ''set'' son la convención de Java para representar propiedades. Algunos lenguajes tienen construcciones de lenguaje reales para las propiedades, pero Java no es uno de ellos. Entonces, cuando veas algo etiquetado como ''setX'', puedes estar 99% seguro de que hay un ''getX'' correspondiente que te dirá el valor.