web-dev-qa-db-fra.com

Impossible de voir l'indicateur de tabulation dans la bibliothèque de support de conception TabLayout

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.

Screen which missing Tab Indicator

14
Herry

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.

30
Moinkhan

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

9
MayurDev

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"

0
Rajesh Batth