Как я могу проверить, если вид виден или нет в Android? [дубликат]
этот вопрос уже есть ответ здесь:
- Android: Как проверить, виден ли вид внутри ScrollView? 11 ответов
Я visibility
невидимый, как это на Android:
myImageView.setVisibility(View.INVISIBLE);
и затем, чтобы сделать его видимым:
myImageView.setVisibility(View.VISIBLE);
теперь я не знаю, если myImageView
виден или нет, как я могу проверить это вот так:
if (myImageView IS VISIBLE) {
Do something
} else {
Do something else
}
как я могу это сделать? Что я должен написать в скобках?
4 ответа:
Хотя Вид.getVisibility () действительно получает видимость, это не просто true/false. Вид может иметь свою видимость, установленную на одну из трех вещей.
вид.Видимый Представление отображается на экране.
вид.Невидимый Вид невидим, но любой интервал, который он обычно занимает, все равно будет использоваться. Его "невидимка"
вид.Ушел Вид исчез, вы не можете его видеть, и он не занимает "место."
Итак, чтобы ответить на ваш вопрос, вы ищете:
if (myImageView.getVisibility() == View.VISIBLE) { // Its visible } else { // Either gone or invisible }
Если изображение является частью макета это может быть "вид.Видимый", но это не значит, что он находится в пределах видимого экрана. Если это то, что вам нужно; это будет работать:
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 }
вы бы использовали соответствующий метод getVisibility(). Имена методов с префиксом " get " и " set " являются соглашением Java для представления свойств. Некоторые языки имеют фактические языковые конструкции для свойств, но Java не является одним из них. Поэтому, когда вы видите что-то с надписью "setX", вы можете быть на 99% уверены, что есть соответствующий "getX", который сообщит вам значение.