Как проверить, является ли вид видимым для пользователя

Мои исследования привели меня в тупик.

Существует активность, которая, очевидно, имеет в ней представления.

Существует несколько способов проверить, является ли вид видимым для пользователя в контексте - это просмотр на экране или он не соответствует границам экрана.

Но вот еще одна ситуация: существует относительный макет, и один вид намеренно перекрывает другой, или появляется всплывающее окно в действии.

Методы, которые используются для проверки видимости вида или отсутствия (включая getLocationOnScreen, getLocalVisibleRect, getHitRect, getDrawingRect), возвращающие значения, как будто вид виден на экране, несмотря на то, что он перекрывается с другим, поэтому я не могу проверить, является ли вид видимым для пользователя.

Нужно ли это проверить?

Ответ 1

Вы можете попробовать это

  if (myView.getVisibility() == View.VISIBLE) {
  // Its visible
  } else {
  // Either gone or invisible
  }

Надеюсь, что это поможет.

Ответ 2

Вы можете использовать метод view.isShown(), этот метод возвращает вид видимого состояния - это результат видимости истинного вида.