android.support.design.widget.TabLayout 属性并没有直接设置item之间间距和字体 的属性 又不想用硬编码
效果:
直接上代码 :
<android.support.design.widget.TabLayout android:id="@+id/m_tbl" android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/transparent" app:tabBackground="@drawable/tab_layout_background"//背景设置间距 app:tabGravity="fill" app:tabIndicatorHeight="0dp" app:tabMaxWidth="0dp"//tab大屏时宽度超过一定值后,就不在平均分配宽度,而是居中显示 app:tabMode="fixed" app:tabSelectedTextColor="@color/color_white" app:tabTextAppearance="@style/MyTabLayoutTextAppearance"//字体大小设置也不能直接设置 app:tabTextColor="@color/color_white" />tab_layout_background:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/sel_bg_tab_yes" android:state_selected="true" /> <item android:drawable="@drawable/sel_bg_tab_no" /> </selector>
这两个状态的selector类似就放一个
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 连框颜色值 --> <item android:left="@dimen/dp_40" android:right="@dimen/dp_40"> <shape> <solid android:color="@color/tab_no_color" /> <corners android:bottomLeftRadius="25dp" android:bottomRightRadius="25dp" android:topLeftRadius="25dp" android:topRightRadius="25dp" /> </shape> </item> <!-- 主体背景颜色值 --> <item android:bottom="1dp" android:left="@dimen/dp_40" android:right="@dimen/dp_40" android:top="1dp"> <shape> <solid android:color="@color/tab_no_color" /> <padding android:bottom="0dp" android:left="10dp" android:right="10dp" android:top="0dp" /> <corners android:bottomLeftRadius="25dp" android:bottomRightRadius="25dp" android:topLeftRadius="25dp" android:topRightRadius="25dp" /> <!-- 设置圆角半径 --> </shape> </item> </layer-list>
字体大小设置style:
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textSize">20sp</item> <item name="android:textColor">@android:color/white</item> </style>