美文网首页
TabLayout 的底部指示线修改(固定长度,圆角)

TabLayout 的底部指示线修改(固定长度,圆角)

作者: jalen2024 | 来源:发表于2019-07-19 11:32 被阅读0次

    最终效果

    底部导航栏长度不再是填满,而是固定长度

    显示圆角矩形

    实现原理

    隐藏 TabLayout 原生的 tabIndicator

    <android.support.design.widget.TabLayout

          ...

            app:tabIndicatorHeight="0dp"

        .../>

    1

    2

    3

    4

    替换 tabBackground

    <android.support.design.widget.TabLayout

          ...

            app:tabBackground="@drawable/tab_selector"

        .../>

    1

    2

    3

    4

    selector 代码

    <?xml version="1.0" encoding="utf-8"?>

    <selector xmlns:android="http://schemas.android.com/apk/res/android">

        <item android:drawable="@drawable/tab_selected" android:state_selected="true" />

        <item android:drawable="@color/white" />

    </selector>

    1

    2

    3

    4

    5

    其中的选中 tab_selected 代码

    <?xml version="1.0" encoding="UTF-8"?>

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

        <!-- 整个背景色-->

        <item>

            <shape>

                <solid android:color="@color/white" />

            </shape>

        </item>

        <!-- 底部圆角,参数是固定的 -->

        <item

            android:width="20dp"

            android:height="3dp"

            android:gravity="bottom|center_horizontal">

            <shape>

                <solid android:color="@color/colorPrimary" />

                <corners android:radius="3dp" />

            </shape>

        </item>

    </layer-list>

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    备注

    原理是替换 tabBackground 的背景.

    具体的替换drawable可以是 UI 设计,这里只是用 xml 简单的写了一个用于演示

    测试发现这个xml写的drawable在 YunOs手机(魅族2)上失效

    相关文章

      网友评论

          本文标题:TabLayout 的底部指示线修改(固定长度,圆角)

          本文链接:https://www.haomeiwen.com/subject/acejlctx.html