Question

Je sais comment mettre l'icône sur chaque onglet, c'est pas de problème. J'ai aussi couru à travers ceci: [Stack Overflow sur filetage à peu près même chose] [1]

J'ai suivi l'un des liens de cette question et a trouvé [ce] [2]

A peu près, il a dit d'utiliser un sélecteur défini dans le fichier XML, bien sûr, a fait cela. Mais il n'y a pas id associé w / donc je ne suis pas sûr de savoir comment obtenir la fonction de sélection en tant que drawable pour que je puisse l'utiliser comme l'icône pour les onglets. Peut-être que je vais sur ce dans le mauvais sens. Mais voici ce que j'ai, et manque évidemment quelque chose.

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

Dans mon code, un onglet exemple est généré en utilisant:

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

En ce moment étirables est juste une référence à une ressource d'image drawable. Comment puis-je le sélecteur dessinable?

Ceci est ma question [1]: Mise à jour Android Tab Icons [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 / fil / ef3bdebcb715b385

Était-ce utile?

La solution

Le fichier XML que vous avez inclus ici est une façon de définir une zone de dessin qui vous permet d'intégrer une déclaration de cas. Il présente un autre drawable en fonction de l'état de la vue, il est affecté à être. En tant que drawable, vous devez enregistrer dans un fichier xml dans le dossier res/drawable de votre projet (par exemple tabselector.xml).

Pour l'utiliser pour le Tabhost, vous devez construire le TabActivity comme vous (comme normalement montré dans cette exemple tutoriel ).

Ensuite, lorsque vous ajoutez chaque onglet à l'hôte, vous spécifiez le drawable de tabselector comme l'indicateur comme indiqué pour « TAB 1 » ci-dessous.

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

Remarque: ne peut pas changer la couleur des arrière-plans onglet derrière les icônes à ce point

.

Autres conseils

Vous pouvez utiliser une vue comme indicateur, de cette façon vous pouvez personnaliser la façon dont vous le souhaitez.

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

Le premier onglet utiliser une vue comme indicateur et le second un CharSequence. Jetez un oeil à la classe TabSpec réelle ( http: // developer.android.com/reference/android/widget/TabHost.TabSpec.html ).

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