Trochę utknąłem z tym - przede wszystkim poniższy link był przydatny, ale pojawił się problem z widocznością:Ustal, czy widok jest na ekranie - Android
Link: Check view visibility
mam widoku przewijania (jednostka dominująca) oraz szereg cząstkowych widoków (LinearLayout
->TableLayout
) itd Istnieje Kasa ustawić do View.GONE
w XML (android:visibility="gone"
).
mam jakiś prosty kod, aby określić, czy jest widoczny lub nie stosując getVisibility()
jednak kiedy ustawić pozycję do View.VISIBLE
i starają się natychmiast getDrawingRect()
dostaję Rect zerami całej planszy. Każde kolejne kliknięcie otrzymuje poprawne współrzędne.
Może to być spowodowane tym, że widok nigdy nie był narysowany (zgodnie z definicją w pliku XML), co spowodowało, że nie zwrócił żadnych współrzędnych, ale ustawiłem View.VISIBLE
przed próbą określenia widoczności ekranu. Czy to możliwe, że muszę uzyskać coś w rodzaju callbacku z polecenia onDraw()? lub może ustawić widoczność ukrytych elementów w kodzie. Trochę denerwujące; (
Niektóre kodu:
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
}
}
obszar
podzial następująco:
ScrollView
LinearLayout
TableLayout
Button
HiddenView
Oczywiście, to jest wysoce prawdopodobne, idę o to w niewłaściwy sposób całkowicie - w zasadzie po prostu chcę się upewnić, że przewijanie się pozycjonuje, więc widok, który stał się widoczny, można zobaczyć w jego całości.
Jeśli potrzebujesz innych informacji, daj mi znać!
Cool. Jeśli to pomogło, możesz zaznaczyć strzałkę/+1. Twoje zdrowie. – OceanLife
Tak, próbowałem to zrobić, ale moje punkty reputacji nie pozwolą mi :( –