Domanda

Dovrebbe essere facile, giusto? Quindi - ecco come ho ViewSwitcher definiti in XML (Id e di layout omessi per brevità)

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

Poi, da qualche parte nel mio codice Java ho questo codice

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

Non è solo il passaggio. I sviluppare per API v. 3 (1.5+) e con mia sorpresa ci sono pochissimi riferimenti a ViewSwitcher. Sto mi manca qualcosa di ovvio qui?

P.S. Ho appena scoperto con la forza bruta che questo funziona:

switcher.setDisplayedChild(1);

Ancora - perché senza fortuna con bringToFront()

È stato utile?

Soluzione

bringToFront() ha in realtà nulla a che fare con ViewSwitcher, il metodo viene ereditato dalla classe View e si distingue per la manipolazione z-ordine di visualizzazione corrente: https://developer.android.com/reference/android/view/View.html#bringToFront ()

Devi usare showNext() e showPrevious() metodi ereditati da ViewAnimator.

Altri suggerimenti

In ViewSwitcher per navigare tra le visualizzazioni è possibile utilizzare i metodi showPrevious() e showNext()

In alternativa l'uso può anche andare alla vista specifica con il metodo setDisplayedChild(int index) cui indice può essere sia 0 o 1

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top