J'utilise la bibliothèque de conception de matériaux et crée une présentation à l'aide de CoordinatorLayout
, AppBarLayout, RecyclerView
et TabLayout
.
Mon problème est que je ne peux pas voir l'indicateur de tabulation dans Tablayout
.Below est mon fichier xml que j'utilise dans 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>
Ci-dessous, un écran qui ne présente pas d’indicateur de tabulation, alors l’on peut savoir ce que je manque.
Je pense que c'est un bogue sur la bibliothèque de support technique . que Lorsque vous appliquez les deux propriétés en même temps
app:tabBackground="@color/tab_bg"
app:tabIndicatorColor="@color/tab_indicator"
la couleur de fond recouvre le indicateur de tabulation . c'est pourquoi l'indicateur de tabulation n'est pas visible.
Si vous supprimez la propriété de couleur tabBackground, vous pouvez voir l'indicateur.
[Mise à jour le 25-06-2015]
Comme je l'ai dit c'est un bogue sur la bibliothèque du Support technique . Je l'ai signalé à la source de bogues Android. voici la référence https://code.google.com/p/Android/issues/detail?id=176540 .
Donc le statut de ce problème est FutureRelease donc le bogue est corrigé. Et cela viendra dans la future bibliothèque.
[Mise à jour 20-07-2015]
Le bogue est corrigé et publié dans la v 22.2.1. vous pouvez également le vérifier sur le lien ci-dessus.
Vous pouvez utiliser les méthodes ci-dessous
1 Modifier en xml App: tabIndicatorColor = "" définir la couleur de votre indicateur
2 création de thème de costume
<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>
Définir le thème dans votre Tablayout
Vous utilisez RecyclerView comme contenu principal, utilisez ViewPager contenant RecyclerView et assurez-vous de donner l'attribut viewpage app:layout_behavior="@string/appbar_scrolling_view_behavior"