14

私はマテリアル デザイン ライブラリを使用しCoordinatorLayout、AppBarLayoutRecyclerViewを使用してレイアウトを作成していますTabLayout

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

以下はタブインジケーターを表示していない画面なので、何が欠けているかを誰でも知ることができます。

タブ インジケーターが表示されない画面

4

6 に答える 6

31

Design Support ライブラリのバグだと思います。両方のプロパティを同時に適用する場合

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

背景色が タブ インジケーター重なってい ます。そのため、タブ インジケーターは表示されません。

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

[2015 年 6 月 25 日更新]

私が言ったように、それは Design Support ライブラリのバグです。Androidバグソースに報告しました。ここに参照https://code.google.com/p/android/issues/detail?id=176540があります。

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

[2015 年 7 月 20 日更新]

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

于 2015-06-12T06:22:05.387 に答える
12

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

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>

Tablayout でテーマを設定する

于 2015-08-25T05:40:41.333 に答える
0

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

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

またはxmlで

android:background="@color/primary"

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

于 2015-06-25T17:21:07.227 に答える
0

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

于 2015-06-12T07:09:43.957 に答える
0

誰かがまだ問題に直面している場合、これは私の既存のアプリケーションの作業例です。それを使用してみて、必要に応じて変更してください。

 <com.google.android.material.tabs.TabLayout
    android:id="@+id/homeScreenTab"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:background="@color/design_default_color_primary_dark"
    app:tabIndicatorColor="@color/black"
    app:tabGravity="fill"
    app:tabIndicatorHeight="3dp"
    app:tabMaxWidth="0dp"
    app:tabMode="fixed"
    app:tabSelectedTextColor="@android:color/white" />
于 2021-01-04T12:02:07.750 に答える
0

どうぞ.. :)

属性を変更する

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>
于 2015-09-29T13:49:09.707 に答える