无法在TabLayoutdevise支持库中查看Tab Indicator

我正在使用Material Design库并使用CoordinatorLayout ,AppBarLayout, RecyclerViewTabLayout创build布局。

我的问题是我无法看到Tablayout Tab指标。下面是我在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> 

下面是不显示选项卡指标的屏幕,所以任何一个可以知道我失踪。

屏幕缺少选项卡指示器

Solutions Collecting From Web of "无法在TabLayoutdevise支持库中查看Tab Indicator"

我认为这是devise支持库上的错误 。 当你同时申请两个财产

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

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

如果你删除tabBackground颜色属性,那么你可以看到指标。

[2015年6月25日更新]

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

所以这个问题的状态是FutureRelease所以错误是固定的。 这将在未来的图书馆。

[更新20-07-2015]

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

你可以使用下面的方法

1更改xml应用程序:tabIndicatorColor =“”设置您的指示器颜色

2创build服装主题

 <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中设置主题

您正在使用RecyclerView作为主要内容,使用ViewPager包含RecyclerView,并确保您给予viewpage属性app:layout_behavior="@string/appbar_scrolling_view_behavior"

使用app1:tabIndicatorColor代替app:tabIndicatorColor。 当您使用该属性时,它将自动创build名称空间app1。

我刚刚通过编程方式修复了这个bug集背景颜色

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

或者在xml中

 android:background="@color/primary" 

但是我不知道这样设置背景颜色是否有问题

干得好.. :)

改变你的属性

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>