2015-11-17 5 views
6

Ich verwende TabLayout von Design-Bibliothek, was ich acheive wollen istSymbol ändern und Titel Farbe, wenn sie in Android Design-Bibliothek ausgewählt TabLayout

I want to achieve

ich viele Tutorial versucht haben, und ich bin in der Lage, es zu erreichen durch Anpassen der Registerkarte, aber es gibt eine Einschränkung, die auftritt, wenn die Registerkarte ausgewählt ist Ich möchte die Textfarbe sowie das Bild des Symbols ändern, was nicht möglich ist, indem ich auf das Tutorial, das ich bisher gelesen habe, verweise. Ich habe dies versucht, so weit durch diese Zugabe in der FragmentStatePagerAdapter

public View getTabView(int position) { 
    View tab = LayoutInflater.from(mContext).inflate(R.layout.tabbar_view, null); 
    TextView tabText = (TextView) tab.findViewById(R.id.tabText); 
    ImageView tabImage = (ImageView) tab.findViewById(R.id.tabImage); 
    tabText.setText(mFragmentTitles.get(position)); 
    tabImage.setBackgroundResource(mFragmentIcons.get(position)); 
    if (position == 0) { 
     tab.setSelected(true); 
    } 
    return tab; 
} 
+0

Behalten Sie Arrays oder Listen der 'tabText'- und' tabImage'-Ansichten, die Sie in dieser Methode finden, und Sie können ändern, was Sie wollen, wenn eine Registerkarte ausgewählt/nicht ausgewählt ist. –

+0

Ich bin in der Lage, das Symbol mit Tab-Aktivität zu ändern, wenn Sie überprüfen möchten, dann werde ich diesen Code veröffentlichen. –

+0

@MikeM. Ich werde versuchen, Ihre Methode –

Antwort

2

Der Konstruktionsbibliothek aktualisiert wurden, um das Material-Design „Tabs mit Symbolen und Text“ Spezifikationen entsprechen, so dass Sie nicht eine benutzerdefinierten Registerkarte Ansicht benötigen.

Aber in der aktuellen Version (23.1.1) stimmen nur die Textfarben mit der Spezifikation überein (Registerkarte fokussiert - #fff, Tab unfokussiert - 70% #fff). Sie können also die , die von getTabTextColors() zurückgegeben wird, verwenden, um die Symbole mit DrawableCompat.setTintList(ColorStateList) zu tönen.

Versuchen Sie, diesen Kernpunkt https://gist.github.com/mikovali/7a89b505cd6306bb94a8 zu verwenden. Das Entfernen der Zeile tabs.setTabTextColors(Color.RED, Color.GREEN) sollte ausreichen, um der Spezifikation für Text und Symbol in dunklen Symbolleisten zu entsprechen.

Verwandte Themen