更改TabLayout选中的背景色

项目中有这种需求,google了下发现了解决方案,摘录如下方便大家排查.
原文链接

原理是利用selector

第一步
在drawable文件夹下建立文件 tab_background.xml


<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/tab_background_selected" android:state_selected="true" />
    <item android:drawable="@drawable/tab_background_unselected" android:state_selected="false" android:state_focused="false" android:state_pressed="false" />
selector>

第二步
在drawable文件夹下建立选中效果的文件 tab_background_selected.xml


<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#d13fdd1a" />
shape>

第三步
在drawable文件夹下建立未选中效果的文件 tab_background_unselected.xml


<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#3F51B5" />
shape>

最后
建立一个style

<style name="Base.Widget.Design.TabLayout" parent="android:Widget">
    <item name="tabBackground">@drawable/tab_background
    "tabIndicatorColor">#ff00ff
    "tabIndicatorHeight">2dp
style>

重点使用该属性@drawable/tab_background

效果图

你可能感兴趣的:(更改TabLayout选中的背景色)