无法在 TabLayout 设计支持库中看到 Tab Indicator
Unable to see Tab Indicator in TabLayout design support library
我正在使用 Material 设计库并使用 CoordinatorLayout
、AppBarLayout、RecyclerView
和 TabLayout
创建布局。
我的问题是我无法在 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>
下面是没有显示 Tab 指示符的屏幕,所以任何人都知道我错过了什么。
我认为这是设计支持库中的错误。那
当您同时应用两者时 属性
app:tabBackground="@color/tab_bg"
app:tabIndicatorColor="@color/tab_indicator"
背景颜色 重叠 标签指示器。这就是标签指示器不可见的原因。
如果您删除 tabBackground 颜色 属性 那么您可以看到指示器。
[更新于 25-06-2015]
如我所说这是设计支持库中的错误。我将其报告给 android 错误源。这是参考 https://code.google.com/p/android/issues/detail?id=176540.
所以这个问题的状态是 FutureRelease 所以错误已修复。它将出现在未来的图书馆中。
[2015 年 7 月更新]
错误已修复并在 v 22.2.1 中发布。你也可以在link.
上面查看
您正在使用 RecyclerView 作为主要内容,使用包含 RecyclerView 的 ViewPager 并确保提供 viewpage 属性 app:layout_behavior="@string/appbar_scrolling_view_behavior"
我刚刚以编程方式修复了设置背景颜色的错误
tabLayout.setBackgroundColor(getResources().getColor(R.color.primary));
或 xml
android:background="@color/primary"
但是不知道这样设置背景色有没有问题
您可以使用以下方法
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 中设置主题
给你..:)
改变你的属性
app:tabBackground="@color/tab_bg"
至
android:背景="@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>
如果还有人遇到这个问题
来自我现有应用程序的工作示例,尝试使用它并根据您的需要进行修改。
<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" />
我正在使用 Material 设计库并使用 CoordinatorLayout
、AppBarLayout、RecyclerView
和 TabLayout
创建布局。
我的问题是我无法在 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>
下面是没有显示 Tab 指示符的屏幕,所以任何人都知道我错过了什么。
我认为这是设计支持库中的错误。那 当您同时应用两者时 属性
app:tabBackground="@color/tab_bg"
app:tabIndicatorColor="@color/tab_indicator"
背景颜色 重叠 标签指示器。这就是标签指示器不可见的原因。
如果您删除 tabBackground 颜色 属性 那么您可以看到指示器。
[更新于 25-06-2015]
如我所说这是设计支持库中的错误。我将其报告给 android 错误源。这是参考 https://code.google.com/p/android/issues/detail?id=176540.
所以这个问题的状态是 FutureRelease 所以错误已修复。它将出现在未来的图书馆中。
[2015 年 7 月更新]
错误已修复并在 v 22.2.1 中发布。你也可以在link.
上面查看您正在使用 RecyclerView 作为主要内容,使用包含 RecyclerView 的 ViewPager 并确保提供 viewpage 属性 app:layout_behavior="@string/appbar_scrolling_view_behavior"
我刚刚以编程方式修复了设置背景颜色的错误
tabLayout.setBackgroundColor(getResources().getColor(R.color.primary));
或 xml
android:background="@color/primary"
但是不知道这样设置背景色有没有问题
您可以使用以下方法
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 中设置主题
给你..:)
改变你的属性
app:tabBackground="@color/tab_bg"
至
android:背景="@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>
如果还有人遇到这个问题 来自我现有应用程序的工作示例,尝试使用它并根据您的需要进行修改。
<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" />