web-dev-qa-db-ja.com

TabLayoutデザインサポートライブラリにタブインジケーターが表示されない

マテリアルデザインライブラリを使用して、CoordinatorLayout、AppBarLayout、RecyclerViewおよびTabLayoutを使用してレイアウトを作成しています。

私の問題は、Tablayoutにタブインジケーターが表示されないことです。以下は、AppCompactActivityで使用しているxmlファイルです。

<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> 

以下は、タブインジケーターが表示されていない画面です。

Screen which missing Tab Indicator

14
Herry

デザインサポートライブラリのバグだと思います。両方のプロパティを同時に適用する場合

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

背景色オーバーラップタブインジケーター。そのため、タブインジケーターは表示されません。

TabBackground colorプロパティを削除すると、インジケーターが表示されます。

[2015年6月25日に更新]

私が言ったようにそれはデザインサポートライブラリのバグです。 Androidバグソース。ここに参照があります https://code.google.com/p/Android/issues/detail?id=17654 に報告しました。

したがって、この問題のステータスはFutureReleaseであるため、バグが修正されます。そしてそれは将来の図書館に来るでしょう。

[2015年7月20日更新]

バグは修正され、v22.2.1でリリースされました。上記のリンクでも確認できます。

31
Moinkhan

以下の方法を使用できます

1 xml app:tabIndicatorColor = ""を変更して、インジケーターの色を設定します

2コスチュームテーマの作成

<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>

タブレイアウトにテーマを設定

11
MayurDev

このバグセットの背景色をプログラムで修正しました

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

またはxmlで

Android:background="@color/primary"

しかし、このように背景色を設定したときに問題があるかどうかはわかりません

0
Jhonatas

どうぞ.. :)

変更あなたの属性

app:tabBackground= "@ color/tab_bg"

Android:background= "@ color/tab_bg"

あなたの最終的なコード。

 <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>
0
Aks4125

RecyclerViewをメインコンテンツとして使用している場合は、RecyclerViewを含むViewPagerを使用し、viewpage属性を必ず指定してくださいapp:layout_behavior="@string/appbar_scrolling_view_behavior"

0
Rajesh Batth