Domanda

So come mettere l'icona in ogni scheda, che non è un problema. Ho anche imbattuto in questo: [Stack Overflow filo su più o meno stessa cosa] [1]

Ho seguito uno dei collegamenti da questa domanda e ho trovato [questo] [2]

Più o meno, ha detto di utilizzare un selettore definito nel XML, certo, ha fatto. Ma non c'è id associato w / così io non sono sicuro di come ottenere la funzione di selezione come un disegnabile modo da poter utilizzare come l'icona per le schede. Forse sto andando su questo nel modo sbagliato. Ma questo è quello che ho, e, ovviamente, manca qualcosa.

<selector
    android:id="@+id/myselector"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item
        android:state_focused="false"
        android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/darklogo" />
    <item
        android:state_focused="false"
        android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />

    <!-- Focused states -->
    <item
        android:state_focused="true"
        android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />
    <item
        android:state_focused="true"
        android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />

    <!-- Pressed -->
    <item
        android:state_pressed="true"
        android:drawable="@drawable/lightlogo" />
</selector>

Nel mio codice, una linguetta di esempio viene generato utilizzando:

  host.addTab(host.newTabSpec("three")  
                .setIndicator("map",drawables)  
                .setContent(new Intent(this, Map.class))); 

In questo momento drawable è solo un riferimento a una risorsa immagine disegnabile. Come faccio a fare il selettore di un drawable?

Questa è la mia domanda [1]: Aggiornamento Android Icons Tab [2]: < a href = "http://groups.google.com/group/android-evelopers/browse_thread/thread/ef3bdebcb715b385" rel = "nofollow noreferrer"> http://groups.google.com/group/android-evelopers/browse_thread / thread / ef3bdebcb715b385

È stato utile?

Soluzione

L'XML hai incluso: ecco un modo di definire un drawable che consente di incorporare un'istruzione case. Presenta una drawable diversa a seconda dello stato della vista è essere assegnato. Come drawable, si dovrebbe salvare come file XML all'interno della cartella res/drawable del progetto (ad esempio tabselector.xml).

Per usare per la Tabhost, è necessario costruire il TabActivity come si farebbe normalmente (come mostrato in questo esercitazione esempio ).

Poi, quando si aggiunge ogni scheda per l'host, si specifica il drawable tabselector come indicatore come indicato per "TAB 1" di seguito.

Drawable mySelector = getResources().getDrawable(R.drawable.tabselector);

mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1", mySelector).setContent(R.id.textview1));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2));

Nota: non può cambiare il colore della scheda sfondi dietro le icone a questo punto

.

Altri suggerimenti

Si potrebbe utilizzare una visualizzazione come indicatore, in questo modo è possibile personalizzare il modo in cui lo si desidera.

mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator(View MyView).setContent(R.id.textview1));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2));

La prima scheda utilizzerà una vista come il suo indicatore e il secondo un CharSequence. Date un'occhiata alla classe reale TabSpec ( http: // developer.android.com/reference/android/widget/TabHost.TabSpec.html ).

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