Подтвердить что ты не робот

Как вы можете определить, отображается ли вид на экране в Android?

Я хочу проверить, отображается ли View в ScrollView на Android. Я не проверяю, сосредоточен ли он, но если он отображается в настоящее время на экране. Есть ли метод в View, который может сказать мне, отображается ли в настоящее время вид?

4b9b3361

Ответ 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?