如何更改新的 TabLayout 指示器颜色和高度

2023-11-23

我正在玩新的android.support.design.widget.TabLayout,发现一个问题,在类定义中,没有改变指示器颜色和默认高度的方法。

做了一些研究,发现默认的指示器颜色取自AppTheme。具体从这里:

<item name="colorAccent">#FF4081</item>

现在,就我而言,如果我改变colorAccent,它将影响所有使用该值作为背景颜色的其他视图,例如 ProgressBar

现在除了colorAccent?


遇到新的 TabLayout 使用值中的指示符颜色的问题colorAccent,我决定深入研究android.support.design.widget.TabLayout实现,发现没有公共方法来定制它。但是我发现 TabLayout 的样式规范:

<style name="Base.Widget.Design.TabLayout" parent="android:Widget">
    <item name="tabMaxWidth">@dimen/tab_max_width</item>
    <item name="tabIndicatorColor">?attr/colorAccent</item>
    <item name="tabIndicatorHeight">2dp</item>
    <item name="tabPaddingStart">12dp</item>
    <item name="tabPaddingEnd">12dp</item>
    <item name="tabBackground">?attr/selectableItemBackground</item>
    <item name="tabTextAppearance">@style/TextAppearance.Design.Tab</item>
    <item name="tabSelectedTextColor">?android:textColorPrimary</item>
</style>

有了这个样式规范,现在我们可以像这样自定义 TabLayout:

<android.support.design.widget.TabLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@id/pages_tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:tabIndicatorColor="@android:color/white"
    app:tabIndicatorHeight="4dp"/>

问题解决了,选项卡指示器的颜色和高度都可以更改其默认值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改新的 TabLayout 指示器颜色和高度 的相关文章

随机推荐