Android 如何在 TabLayout 中为选择选项卡设置填充

How to set padding for selection tab in TabLayout on Android

在我的申请中我应该 TabLayoutViewPager.
我想要在tabLayout.

中为tabIndicatorColor设置填充

默认显示如下图片:

但我想要在选择项目时,像这样显示给我:

我想为 tabIndicatorColor.

设置填充

我的 TabLayout XML 代码:

<android.support.design.widget.TabLayout
    android:id="@+id/serialDetail_tabLayout"
    android:layout_width="match_parent"
    android:layout_height="@dimen/size50"
    android:layout_gravity="bottom"
    android:background="@color/colorPrimary"
    app:tabIndicatorColor="@color/colorAccent"
    app:tabSelectedTextColor="@color/colorAccent"
    app:tabTextAppearance="@style/allCapsTabLayout"
    app:tabTextColor="@color/white" />

我怎么可以呢?请帮我。谢谢大家 <3

有两种简单的方法可以做到这一点。您可以为选项卡使用自定义布局,也可以只在相同的选项卡下方添加一个视图 color.The 第二个选项更容易。

是的,没有自定义视图和外部库也是可能的..

您可以创建一个选择器文件

tab_indicator_line.xml 添加到drawable文件夹

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:state_pressed="false">
        <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

            <item android:top="-5dp" android:left="-5dp" android:right="-5dp" android:bottom="5dp">
                <shape android:shape="rectangle">

                    <solid android:color="@android:color/white"/>
                    <stroke android:color="@color/colorPrimary" android:width="2dp"/>

                </shape>
            </item>
        </layer-list>
    </item>

    <item android:state_selected="true" android:state_pressed="true">
        <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

            <item android:top="-5dp" android:left="-5dp" android:right="-5dp" android:bottom="5dp">
                <shape android:shape="rectangle">

                    <solid android:color="@android:color/white"/>
                    <stroke android:color="@color/colorPrimary" android:width="2dp"/>

                </shape>
            </item>
        </layer-list>
    </item>

</selector>

现在使用

在 tabLayout 中应用
app:tabBackground="@drawable/tab_indicator_line"
app:tabIndicatorHeight="0dp"

如有任何疑问请告诉我..