Question

Il devrait être facile, non? Alors - voici comment je ViewSwitcher défini dans XML (Id et de mises en page par souci de concision omis)

<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>

Alors quelque part dans mon code Java j'ai ce 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

Il est tout simplement pas passer. Je développe l'API v. 3 (1.5+) et à ma grande surprise, il y a très peu de références à ViewSwitcher. Je suis je manque quelque chose évidente ici?

P.S. Je viens de découvrir par la force brute que cela fonctionne:

switcher.setDisplayedChild(1);

Encore - pourquoi pas de chance avec bringToFront()

Était-ce utile?

La solution

bringToFront() n'a en fait rien à voir avec ViewSwitcher, la méthode est héritée de la classe View et est synonyme de manipulation z ordre de vue actuel: https://developer.android.com/reference/android/view/View.html#bringToFront ()

Vous devez utiliser des méthodes de showNext() et showPrevious() héritées de ViewAnimator.

Autres conseils

Dans ViewSwitcher pour naviguer entre les vues que vous pouvez utiliser les méthodes showPrevious() et showNext()

Ou utilisez peut aussi aller à la vue spécifique par la méthode setDisplayedChild(int index) où l'indice peut être 0 ou 1

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top