Frage

Ich weiß, wie man das Symbol auf jede Registerkarte setzt, das ist kein Problem. Ich bin auch darauf gestoßen: [Stack -Überlauf -Thread auf ziemlich gleichem] [1

Ich folgte einem der Links aus dieser Frage und fand [dies] [2

Ziemlich genau, sagte es, einen im XML definierten Selektor zu verwenden. Es ist jedoch keine ID zugeordnet mit IT zugeordnet, daher bin ich mir nicht sicher, wie ich die Selektorfunktion als Zeichnung erhalten kann, damit ich sie als Symbol für die Registerkarten verwenden kann. Vielleicht mache ich das falsch. Aber das habe ich und fehlt offensichtlich etwas.

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

In meinem Code wird ein Beispiel -Registerkarte mit:

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

Derzeit ist nur ein Verweis auf eine zeichnete Bildressource. Wie mache ich den Selektor zu einem Zeichnung?

Dies ist meine Frage [1]: Aktualisieren von Android -Registerkarten -Symbolen [2]: http://groups.google.com/group/android-velopers/browse_thread/thread/ef3bdebcb715b385

War es hilfreich?

Lösung

Die XML, die Sie hier aufgenommen haben, ist eine Möglichkeit, ein Zeichnung zu definieren, mit dem Sie eine Fallanweisung einbetten können. Es präsentiert eine andere Zeichnung, abhängig vom Stand der Ansicht, dem es zugewiesen wird. Als Zeichnung sollten Sie es als XML -Datei in der speichern res/drawable Ordner Ihres Projekts (zum Beispiel tabselector.xml).

Um es für den Tabhost zu verwenden, müssen Sie die Tabraktivität so konstruieren, wie Sie es normalerweise tun würden (wie in dieser gezeigt Tutorial -Beispiel).

Wenn Sie dann jede Registerkarte zum Host hinzufügen, geben Sie die an tabselector Drawable als Anzeige wie für "Tab 1" unten angezeigt.

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

Hinweis: Sie kann nicht Ändern Sie an diesem Punkt die Farbe der Registerkartenhintergründe hinter den Symbolen.

Andere Tipps

Sie können eine Ansicht als Indikator verwenden, auf diese Weise können Sie sie so anpassen, wie Sie es wünschen.

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

Die erste Registerkarte verwendet eine Ansicht als Indikator und die zweite eine Charsequence. Schauen Sie sich die tatsächliche Tabspec -Klasse an (http://developer.android.com/reference/android/widget/tabhost.tabspec.html).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top