Android - ViewSwitcher schaltet nicht Ansichten
-
04-10-2019 - |
Frage
Es sollte einfach, nicht wahr sein? So - hier ist, wie ich ViewSwitcher
in XML definiert haben (IDs und Layouts der Kürze halber weggelassen)
<ViewSwitcher android:layout_height="wrap_content" android:layout_width="fill_parent" >
<!-- First view, comes up OK -->
<LinearLayout android:id="@+id/header1">
<!-- some more controls: Progress bar, test view and the button -->
</LinearLayout>
<!-- second view. changing to the actual (not include) layout has no effect -->
<include android:id="@+id/header2" />
</ViewSwitcher>
Dann irgendwo in meinem Java-Code Ich habe diesen Code
ViewSwitcher switcher = (ViewSwitcher) findViewById(R.id.profileSwitcher);
// more code that basically executes background search
// when call comes back - switch
switcher.bringToFront(); // does nothing
// switcher.bringChildToFront(findViewById(R.id.header2)); // no effect ether
Es ist Schalt einfach nicht. Ich entwickle für API v. 3 (1.5+) und zu meiner Überraschung gibt es sehr wenige Hinweise auf ViewSwitcher. Ich bin ich etwas fehlt offensichtlich hier?
P. S. Ich habe gerade mit brutalen Gewalt aus, dass dies funktioniert:
switcher.setDisplayedChild(1);
Noch - warum kein Glück mit bringToFront()
Lösung
bringToFront()
eigentlich nichts hat mit ViewSwitcher
zu tun, wird das Verfahren von View-Klasse geerbt und steht für Z-Reihenfolge Manipulation der aktuellen Ansicht: https://developer.android.com/reference/android/view/View.html#bringToFront ()
Sie haben showNext()
und showPrevious()
Methoden von ViewAnimator
geerbt verwenden.
Andere Tipps
In ViewSwitcher
zwischen den Ansichten navigieren können Sie die Methoden verwenden showPrevious()
und showNext()
oder benutzen kann auch durch setDisplayedChild(int index)
Methode bestimmte Ansicht gehen, wo Index entweder 0
sein kann oder 1