TabLayout指标定制

时间:2016-03-17 12:11:04

标签: android android-tablayout

我一直在搜索如何将Tablayout中的指标更改为圆形,就像这样 enter image description here

但我不知道该怎么做,任何帮助!

3 个答案:

答案 0 :(得分:2)

source code,标签指示符定义为:

<style name="Base.Widget.Design.TabLayout" parent="android:Widget">
        <item name="tabMaxWidth">@dimen/design_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>

tabIndicatorColor属性定义为:

<declare-styleable name="TabLayout">
        <attr name="tabIndicatorColor" format="color"/>
        <attr name="tabIndicatorHeight" format="dimension"/>

所以我相信你不能把它变成一个可绘制的(形状),你只能改变它的颜色。

另一种方法是为选项卡定义自定义视图并自己处理指标状态

答案 1 :(得分:0)

1)为选项卡状态创建布局(例如:tab_selected.xml和tab_unselected.xml)

2)使用布局为标签设置自定义视图:

//get your tab item
TabLayout.Tab tabItem = tabLayout.getTabAt(i);
//inflate your layout to a view and set it as the tab's custom view
tabItem.setCustomView(customView);

3)然后,使用setOnTabSelectedListener,继续收听选择的标签并相应地更新其自定义视图(使用setCustomView

答案 2 :(得分:0)

我认为您应该为标签使用自定义视图并使用TabLayout.OnTabSelectedListener

进行更改