Android TabLayout 设置间距\字体大小的正确姿势

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>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值