无法在TabLayout设计支持库中看到Tab指标

时间:2015-06-12 05:42:49

标签: android material-design android-support-design

我正在使用Material设计库并使用CoordinatorLayout,AppBarLayout,RecyclerViewTabLayout创建布局。

我的问题是我无法在Tablayout中看到Tab指示符.Below是我在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> 

下面是没有显示Tab指标的屏幕,所以任何人都知道我错过了什么。

Screen which missing Tab Indicator

6 个答案:

答案 0 :(得分:30)

我认为是设计支持库中的错误。那 当您同时应用这两个属性时

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

背景颜色 重叠 标签指示符。这就是选项卡指示器不可见的原因。

如果删除tabBackground颜色属性,则可以看到指示符。

[2015年6月25日更新]

正如我所说它是设计支持库中的错误。我把它报告给了android bug源码。这是参考https://code.google.com/p/android/issues/detail?id=176540

因此,问题的状态是 FutureRelease ,因此修复了错误。它将来自未来的图书馆。

[2015年7月20日更新]

该错误已修复,并在第22.2.1节中发布。你也可以在上面的链接上查看。

答案 1 :(得分:0)

您使用RecyclerView作为主要内容,使用包含RecyclerView的ViewPager,并确保您提供了viewpage属性app:layout_behavior="@string/appbar_scrolling_view_behavior"

答案 2 :(得分:0)

我刚刚以编程方式修复了此错误集背景颜色

phpinfo(64)

或在xml中

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

但是当我以这种方式设置背景颜色时,我不知道是否有任何问题

答案 3 :(得分:0)

你去......:)

更改您的属性

应用:tabBackground =&#34; @颜色/ tab_bg&#34;

<强>机器人:背景 =&#34; @颜色/ tab_bg&#34;

你的最终代码..

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

答案 4 :(得分: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" />

答案 5 :(得分:-1)

使用app1:tabIndicatorColor而不是app:tabIndicatorColor。当您使用该属性时,它将自动创建命名空间app1。