Я немного застрял в этом вопросе - в первую очередь, эта ссылка была полезной, однако я столкнулся с некоторой проблемой с видимостью:
Ссылка: Проверить видимость просмотра
У меня есть вид прокрутки (родительский) и ряд под-представлений (LinearLayout → TableLayout) и т.д. В XML файле (android:visibility="gone") есть несколько элементов, которые я установил View.GONE.
У меня есть простой код, чтобы определить, видно ли это или нет с помощью getVisibility(), но когда я установил элемент в View.VISIBLE и попытаюсь сразу getDrawingRect(), я получаю Rect с нулями по всей доске. Любой последующий щелчок получает правильные координаты.
Теперь это может быть связано с тем, что представление никогда не было нарисовано (как определено в XML), заставляя его не возвращать никакие координаты, но я устанавливаю View.VISIBLE, прежде чем пытаться определить видимость экрана. Может быть, мне нужно получить какой-то обратный вызов, скажем, onDraw()? или, возможно, установить видимость скрытых элементов в коде. Немного раздражает; (
Некоторые коды:
Rect scrollBounds = new Rect();
scroll.getHitRect(scrollBounds);
Rect viewBounds = new Rect();
if (view.getVisibility() == View.GONE) {
view.setVisibility(View.VISBLE)
viewBounds.getDrawingRect(viewBounds);
if (!Rect.intersects(scrollBounds, viewBounds) {
// do somthing
}
}
Область макетов следующим образом:
-
ScrollView-
LinearLayout-
TableLayout-
Button -
HiddenView
-
-
-
Конечно, очень вероятно, что я полностью об этом поменяю - в основном я просто хочу убедиться, что scrollview позиционирует себя так, чтобы вид, который стал видимым, можно увидеть в нем целиком.
Если какая-либо другая информация требуется, дайте мне знать!