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