2016-05-11 17 views
3

Ich habe wie untenSelector funktioniert nicht mit TabLayout

Registerkarte Layout mit meiner benutzerdefinierten Ansicht hinzugefügt

Java-Code

 for (int i = 0; i < allTabs.getTabCount(); i++) { 
     TabLayout.Tab tab = allTabs.getTabAt(i); 
     View v = LayoutInflater.from(getActivity()).inflate(R.layout.tab_layout, allTabs, false); 
     tvTabText = (TextView) v.findViewById(R.id.tab_title); 
     View view = (View) v.findViewById(R.id.deviderView); 
     tvTabText.setText(tab.getText()); 
     tab.setCustomView(v); 
     if (i == 0) { 
      view.setVisibility(View.GONE); // Hide last devider 


     } 
    } 

Xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal"> 

<!-- Tab title --> 
<TextView 
    android:id="@+id/tab_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:gravity="center_horizontal" 
    android:text="sdasd" 
    android:padding="10dp" 
    android:textStyle="bold" 
    android:textColor="@drawable/tab_item_selector" 
    android:textSize="@dimen/text_size_normal" /> 

<!-- Tab divider --> 

<View 
    android:id="@+id/deviderView" 
    android:layout_width="1dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="right" 
    android:layout_marginBottom="15dp" 
    android:layout_marginTop="15dp" 
    android:background="@android:color/white" 
    android:gravity="right" /> 

tab_item_selector.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_selected="true" android:color="@android:color/white" /> 
<item android:state_focused="true" android:color="@android:color/white" /> 
<item android:state_pressed="true" android:color="@android:color/white" /> 
<item android:color="#82c6e6" /> 

ich habe seted erstes Register

ausgewählt
allTabs.addTab(allTabs.newTab().setText("CURRENT YEAR"),true); 

auch mit

if (i == 0) { 
      view.setVisibility(View.GONE); 
      tab.select(); 
     } 

in benutzerdefinierter Ansicht versuchen.

ich versuche auch

allTabs.setTabTextColors(normal,selected); 

das ist mein TabLayout

<android.support.design.widget.TabLayout 
    android:id="@+id/tabs" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/master_color" 
    app:tabMode="scrollable" 
    app:tabPaddingEnd="0dp" 
    app:tabPaddingStart="0dp"/> 

compile 'com.android.support:appcompat-v7:23.3.0' 
compile 'com.android.support:design:23.3.0' 

einmal Ansicht erscheinen i auf forst Registerkarte als Registerkarte klicken, wird wihte Farbe Text zeigen, aber wenn ich RELEAS drücken dann nach Text gehen normale Farbe jedes Mal. Wenn ich auf die zweite Registerkarte klicke und dann auf die erste Registerkarte klicke, funktioniert es gut als Aspekt.

alle Zeitbelastung erste Tab, aber ich kann ersten Reiter erhalte mit ausgewähltem (bedeuten, wie ich mit weißer Farbe Text möchte, wenn Tab wählen ist)

Antwort

0

Sie können versuchen, diese in Ihrem tabLayout:

app:tabTextColor="@color/gray" 
app:tabSelectedTextColor="@color/white" 
+0

ja Es wird funktionieren, aber ich verwende ein benutzerdefiniertes Layout, und im benutzerdefinierten Layout funktionieren diese Eigenschaften nicht. ich habe den Teiler zwischen zwei Tabs gesetzt. –

+0

überprüfen Sie diesen Link: http://StackOverflow.com/a/32416751/4628611 – Mehta

Verwandte Themen