Я хочу проверить, отображается ли View
в ScrollView
на Android. Я не проверяю, сосредоточен ли он, но если он отображается в настоящее время на экране. Есть ли метод в View
, который может сказать мне, отображается ли в настоящее время вид?
Как вы можете определить, отображается ли вид на экране в Android?
Ответ 1
int[] location = new int[2];
view.getLocationOnScreen(location);
или
Rect rect = new Rect();
view.getGlobalVisibleRect(rect);
Теперь используйте это местоположение или прямоугольник, чтобы проверить, находится ли он в ваших видимых границах или нет. Если это просто весь экран, установите флажок getResources().getDisplayMetrics()
.
Как указано Antek в комментариях ниже, представление все равно может исчезнуть или невидимо с возвращенными значениями здесь, где указано, где он был в последний раз. Таким образом, объединение этого связанного с оценкой состояния с view.isShown()
или view.getVisibility() == VISIBLE
должно позаботиться об этом.
Ответ 2
попробуйте
if(view.isShown()) {
// Visible
} else {
// Invisible
}
Ответ 3
Метод getVisibility()
поможет вам проверить видимость любого View
.
Пример:
if(view.getVisibility() == View.VISIBLE) {
// Visible
} else {
// Invisible
}
Ответ 4
Функция View.getVisibility() может иметь следующие значения:
-
View.VISIBLE(0): вид виден.
-
View.INVISIBLE(1): представление невидимо, но оно все еще занимает место для целей макета.
-
View.GONE(2): представление исчезло. Полностью скрыт, как будто представление не было добавлено.
Вы можете увидеть ниже ссылку для получения дополнительной информации. Как проверить, видимо ли вид в Android?