android-TabLayout标签样式

我使用com.android.support:design库中的新TabLayout。 我想更改选定/未选定选项卡的背景。我查看了源代码,发现只有tabBackground属性可以更改所有标签的颜色,并且不能控制所选标签的颜色。

如何控制选中/未选中的标签背景?

4个解决方案

154 votes

限定:

@dimen/tab_max_width

?attr/colorAccent

4dp

6dp

6dp

?attr/selectableItemBackground

@style/AppTabTextAppearance

@color/range

12sp

@color/orange

false

应用:

style="@style/AppTabLayout"

app:tabTextAppearance="@style/AppTabTextAppearance"

android:layout_width="match_parent"

.... />

Akshay answered 2019-11-11T21:05:32Z

16 votes

如果查看TabLayout.class,您会注意到内部TabView.class用于标签的实际布局。 与具有isSelected属性的任何其他布局相同。 选择标签也会对此产生影响,因此您所需要做的就是创建选择器背景可绘制对象,例如

并将其附加到tabBackground属性,例如 在XML中

android:layout_width="match_parent"

android:layout_height="wrap_content"

app:tabBackground="@drawable/tab_bg"

app:tabIndicatorHeight="4dp"/>

Michal answered 2019-11-11T21:06:03Z

7 votes

我阅读了“如何设置ActionBar的样式”,所选标签上的标签背景并弄清楚该怎么做。 这确实是一个类似的问题,但我发现了一个特别适合TabLayout的出色解决方案:

android:id="@+id/tabs"

android:layout_width="match_parent"

android:layout_height="48dp"

android:background="@color/tab_layout_color"

app:tabIndicatorHeight="48dp"

app:tabIndicatorColor="@color/selected_tab_color"

/>

请注意layout_height和tabIndicatorHeight具有相同的高度。 因此,您可以通过这种方式获得漂亮的过渡动画。

IlyaEremin answered 2019-11-11T21:06:35Z

-12 votes

我也遇到了这个问题。 我只是在整个项目中搜索了tabIndicatorColor,并在一些R.java中找到了以下代码:

@see #TabLayout_tabBackground

@see #TabLayout_tabContentStart

@see #TabLayout_tabGravity

@see #TabLayout_tabIndicatorColor

@see #TabLayout_tabIndicatorHeight

@see #TabLayout_tabMaxWidth

@see #TabLayout_tabMinWidth

@see #TabLayout_tabMode

@see #TabLayout_tabPadding

@see #TabLayout_tabPaddingBottom

@see #TabLayout_tabPaddingEnd

@see #TabLayout_tabPaddingStart

@see #TabLayout_tabPaddingTop

@see #TabLayout_tabSelectedTextColor

@see #TabLayout_tabTextAppearance

@see #TabLayout_tabTextColor

这样问题就解决了。 可能会对您有所帮助。

即我使用IDEA

acntwww answered 2019-11-11T21:07:14Z

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐