2015-06-12 9 views
14

Używam biblioteki projektowania materiałów i tworzenia układu przy użyciu CoordinatorLayout, AppBarLayout, i .Nie można wyświetlić wskaźnika tabulatora w bibliotece obsługi projektowania TabLayout

Mój problem to nie jestem w stanie zobaczyć wskaźnik Tab w Tablayout. Poniżej znajduje się mój plik xml, którego używam w AppCompactActivity.

<android.support.design.widget.CoordinatorLayout 
     android:id="@+id/coodinate_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/btn_next_screen"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/list_recycle" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginBottom="30dp" 
      android:background="@color/white" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 

      /> 

     <android.support.design.widget.AppBarLayout 
      android:id="@+id/abar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar_home" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="?attr/colorPrimary" 
       android:minHeight="?attr/actionBarSize" 
       app:layout_scrollFlags="scroll|enterAlways" 

       > 


      </android.support.v7.widget.Toolbar> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/tab_layout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:tabBackground="@color/tab_bg" 
       app:tabIndicatorColor="@color/tab_indicator" 
       app:tabIndicatorHeight="5dp" 
       app:tabMode="fixed" 

       ></android.support.design.widget.TabLayout> 


     </android.support.design.widget.AppBarLayout> 


     <android.support.design.widget.FloatingActionButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="15dp" 
      app:layout_anchor="@+id/list_recycle" 
      app:layout_anchorGravity="bottom|right" 
      android:id="@+id/floatin_ab_home" 
      app:fabSize="mini" 
      android:src="@drawable/ic_content_add" 

      /> 


    </android.support.design.widget.CoordinatorLayout> 

Poniżej znajduje się ekran, który nie pokazuje wskaźnika Tab, więc każdy może wiedzieć, czego mi brakuje.

Screen which missing Tab Indicator

Odpowiedz

26

myślę to bug na projekt wsparcia biblioteki. że Po zastosowaniu zarówno właściwość jednocześnie

app:tabBackground="@color/tab_bg" 
app:tabIndicatorColor="@color/tab_indicator" 

kolor tłonakładanie wskaźnikazakładce. właśnie dlatego wskaźnik tabulacji nie jest widoczny.

Po usunięciu właściwości koloru tabBackground można zobaczyć wskaźnik.

[Aktualizacja 25-06-2015]

Jak powiedziałem to bug na projekt wsparcia biblioteki. Zgłosiłem to do źródła błędów Androida. tutaj jest refren https://code.google.com/p/android/issues/detail?id=176540.

Stanem tego problemu jest FutureRelease, więc błąd został naprawiony. I przyjdzie w przyszłej bibliotece.

[Aktualizacja 20-07-2015]

Błąd jest stała i Wydany w v 22.2.1. możesz również sprawdzić to na powyższym linku.

+1

Ok LET'S me check i Czy masz inny sposób na zmianę koloru tła roboczego i koloru wskaźnika karty. – Herry

+1

Na razie nie ma rozwiązania. Ale możesz przekazać niestandardowy widok do karty. Tak więc dla każdej karty można przekazać LinearLayout zawierający textView i ImageView. I możesz ustawić kolor tła na LinearLayout. – Moinkhan

+0

Nadal trwa w v23. + Zbyt –

0

Używasz RecyclerView jako głównej zawartości użyj ViewPager zawierający RecyclerView i upewnij się dać atrybut ViewPage app:layout_behavior="@string/appbar_scrolling_view_behavior"

+0

Próbowałem twój sugerowany ViewPager i wewnątrz Pierwszy fragment ma RecycleView, ale jeszcze mój TabLayout nie jest w stanie pokazać wskaźnik Tab. – Herry

+0

czy wywołałeś 'tabLayout.setupWithViewPager (viewPager);'? –

+0

Zobacz przykładowy projekt autorstwa Chrisa Banesa https://github.com/chrisbanes/cheesesquare.git –

0

Używaj app1: tabIndicatorColor zamiast aplikacji: tabIndicatorColor. Automatycznie utworzy przestrzeń nazw app1, gdy użyjesz tego atrybutu.

0

Właśnie stała ten błąd ustawić kolor tła programowo

tabLayout.setBackgroundColor(getResources().getColor(R.color.primary)); 

lub xml

android:background="@color/primary" 

Ale nie wiem, czy jest jakiś problem, gdy kolor tła można ustawić w ten sposób

7

można użyć poniżej metod

1 Zmiana w xml aplikacja: tabIndicatorColor = "" ustawić kolor wskaźnika

2 tworząc kostium Theme

<style name="AppTheme.TabStyle" parent="Widget.Design.TabLayout"> 
     <item name="tabTextAppearance">@style/AppTheme.TextStyle</item> 
     <item name="tabTextColor">@color/primaryDark</item> 
     <item name="tabSelectedTextColor">@color/white</item> 
     <item name="tabIndicatorColor">@color/primaryDark</item> 
     <item name="tabIndicatorHeight">3dp</item> 
     <item name="android:background">?attr/colorPrimary</item> 
    </style> 

    <style name="AppTheme.TextStyle" parent="TextAppearance.Design.Tab"> 
     <item name="android:textSize">14sp</item> 
     <item name="textAllCaps">true</item> 
    </style> 

zestaw temat w Tablayout

0

tu proszę .. :)

Zmień Twój atrybut

aplikacja: tabBackground = "@ kolor/tab_bg"

do

android tło = "@ kolor/tab_bg"

twój ostateczny kod ..

<android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/tab_bg" 
      app:tabIndicatorColor="@color/tab_indicator" 
      app:tabIndicatorHeight="5dp" 
      app:tabMode="fixed"> 
</android.support.design.widget.TabLayout> 
Powiązane problemy