2016-03-23 12 views
0

Ich möchte zeigen, wie WhatsApp in der Registerkarte zählen. enter image description hereBenutzerdefinierte Registerkarte nicht Hervorhebung

Ich habe eine benutzerdefinierte Ansicht auf der Registerkarte hinzugefügt und ich könnte etwas wie folgt implementieren. Das Problem, mit dem ich jetzt konfrontiert bin, ist, wenn die Seite geladen wird, ist die erste Registerkarte nicht hervorgehoben. Wenn ich den Viewpager zum nächsten Tab wische und dann zurückkomme, wird er hervorgehoben.

Ich stelle einen Farbwähler als Textfarbe für die Textansicht ein.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
     android:color="@color/white" /> <!-- pressed --> 
    <item android:state_focused="true" 
     android:color="@color/white" /> <!-- focused --> 
    <item android:state_selected="true" 
     android:color="@color/white" /> 
    <item android:state_active="true" 
     android:color="@color/white" /> 
    <item android:state_active="false" 
     android:color="@color/inactive_tab_color" /> 
    <item android:state_activated="true" 
     android:color="@color/white" /> 
    <item android:color="@color/white" /> <!-- default --> 
</selector> 

Und das ist die Registerkarte Layout. Arbeits

<android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="50dp" 
      android:background="@color/red" 
      app:tabTextColor="@color/inactive_tab_color" 
      app:tabSelectedTextColor="@color/white" 
      app:tabIndicatorColor="@color/white" 
      android:layout_gravity="bottom" 
      app:layout_scrollFlags="scroll" /> 

Ich habe getTabLayout().getTabAt(0).select() und viewPager.setCurrentItem(0) aber nicht versucht. Die Registerkarte wird nicht hervorgehoben.

Kann mir jemand sagen, was ich tun soll, um dies zu erreichen?

+0

Niemand hat Antworten? –

+0

Wenn meine Frage nicht klar genug ist, kann ich es erklären. –

Antwort

0

Ich habe eine Arbeit für dieses Problem gefunden.

An der Stelle der Initialisierung Registerkarten, ich Code für die Auswahl der zweiten Registerkarte zuerst und dann die erste Registerkarte. Da dieser Code ausgeführt wird, bevor die Seite für den Benutzer sichtbar ist, wird das Flackern des Tabs nicht auftreten.

Ich weiß, das ist nicht die beste Methode. Dies ist nur eine Arbeit. Aber da ich keine andere Lösung bekommen habe, habe ich mich dafür entschieden. Das Code-Snippet ist unten.

tabLayout.getTabAt(0).setCustomView(v); 
      tabLayout.getTabAt(1).select(); 
      tabLayout.getTabAt(0).select(); 

Fügen Sie den obigen Code an der Stelle der Initialisierungsregister hinzu. onActivityCreated() im Fall von Fragmenten und onCreate() im Fall von Aktivität.

Verwandte Themen