Ich bin ein wenig mit diesem stecken - in erster Linie war der folgende Link nützlich, aber ich habe ein bisschen ein Problem mit der Sichtbarkeit:Ermitteln Sie, ob eine Ansicht auf dem Bildschirm ist - Android
der Link: Check view visibility
ich habe eine Scroll-Ansicht (Eltern) und eine Reihe von Unteransichten (LinearLayout
->TableLayout
) etc. Es gibt eine Reihe von Punkten I bis View.GONE
im XML gesetzt (android:visibility="gone"
).
Ich habe einige einfachen Code, um zu bestimmen, ob es sichtbar ist oder nicht jedoch mit getVisibility()
, wenn ich den Artikel View.VISIBLE
setzen und versuchen erhalten sofort getDrawingRect()
ich eine Rect mit Nullen auf der ganzen Linie. Jeder weitere Klick erhält die richtigen Koordinaten.
Nun könnte dies sein, weil die Ansicht nie gezeichnet wurde (wie in der XML definiert), so dass es keine Koordinaten zurückgibt, aber ich setze View.VISIBLE
vor dem Versuch, Bildschirm Sichtbarkeit zu bestimmen. Könnte es sein, dass ich eine Art Rückruf von sagen der onDraw() brauche? Oder legen Sie die Sichtbarkeit von versteckten Objekten im Code fest. Ein bisschen ärgerlich, (
Einige Code:
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
}
}
Bereich Layouts wie folgt:
ScrollView
LinearLayout
TableLayout
Button
HiddenView
Natürlich ist es sehr wahrscheinlich, ich darüber ganz die falsche Art und Weise werde - im Grunde Ich möchte nur sicherstellen, dass Der Scrollview positioniert sich so, dass die sichtbar gewordene Ansicht vollständig sichtbar ist.
Wenn weitere Informationen erforderlich sind, lassen Sie es mich wissen!
Kühl. Fühlen Sie sich frei, den Pfeil/+1 zu kreuzen, wenn es half. Prost. – OceanLife
Yeah versucht, das zu tun, aber mein Rufpunkte erlauben mir nicht :( –