TabLayout selected Tab-Symbol ist beim Start nicht ausgewählt

Ich benutze einTabLayout für Tabbed Navigation in meiner App. Ich habe ein wirklich seltsames Problem damit, ich habe 4 Registerkarten mit diesem Code erstellt:

private int[] tabIcons = {R.drawable.navigation_timeline_icon_selector, R.drawable.navigation_feed_icon_selector,
        R.drawable.navigation_messages_icon_selector, R.drawable.navigation_notification_icon_selector};

 TabLayout tabLayout = setTabLayout();
    if (tabLayout != null) {
        for (int i = 0; i < 4; i++) {
            tabLayout.getTabAt(i).setIcon(tabIcons[i]);
        }
    }

Jeder der Einträge in tabIcon ist einselector mit ausgewählten und nicht ausgewählten Zuständen. Alle Icon-Selektoren sind wie folgt konfiguriert:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:drawable="@drawable/navigation_timeline_selected_icon" android:state_selected="true"/>
      <item android:drawable="@drawable/navigation_timeline_selected_icon" android:state_pressed="true"/>
      <item android:drawable="@drawable/navigation_timeline_icon" />
</selector>

Das Problem ist, dass beim Starten der Anwendung auf der ersten ausgewählten Registerkarte (Index 0) das Symbol für den ausgewählten Status nicht verwendet wird. Stattdessen wird der nicht ausgewählte Status verwendet.

Um die Erklärung zu vereinfachen, hier ein Screenshot des Problems. Beim ersten Start sieht mein Tab folgendermaßen aus:

wenn es stattdessen so aussehen sollte:

Nachdem ich eine Seite geändert habe, sind alle Symbole wieder voll funktionsfähig, und die ausgewählten Status werden ordnungsgemäß ausgewählt.

Ich habe versucht, das @ zu verwendTabLayout.Tab select() -Methode, aber das Ergebnis ist dasselbe. Das verwendete Symbol ist das nicht ausgewählte Symbol.

Weiß jemand, was ich tun kann, um das Problem zu beheben?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage