【问题标题】:How to change the bottom navigation indicator width如何更改底部导航指示器的宽度
【发布时间】:2021-11-12 23:35:59
【问题描述】:

activity_main_tab_background

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
    <layer-list>
        <item android:gravity="top">
            <shape android:shape="rectangle">
                <size android:height="@dimen/_5fdp"/>
                <solid android:color="@color/red"/>
                <corners android:bottomLeftRadius="@dimen/_3fdp"
                    android:bottomRightRadius="@dimen/_3fdp"/>
            </shape>
        </item>
    </layer-list>
</item>
</selector>

主要活动中的底部导航

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/main_bottom_nav"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:itemBackground="@drawable/activity_main_tab_background"
        app:labelVisibilityMode="unlabeled"
        app:menu="@menu/home_bottom_nav" />

My output

expected output

如何更改指标宽度?

<size android:height="@dimen/_5fdp" android:width="@dimen/_10fdp"/> // tried and not working

【问题讨论】:

    标签: android android-layout material-design android-drawable bottomnavigationview


    【解决方案1】:

    您可以通过在可绘制对象中指定所需的宽度并使用centercenter_horizontal 重力来解决此问题,除了top

    对于 API 级别 23+:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_checked="true">
            <layer-list>
                <item android:width="50dp" android:gravity="top|center_horizontal">
                    <shape android:shape="rectangle">
                        <size android:height="@dimen/_5fdp" />
                        <solid android:color="@color/red" />
                        <corners android:bottomLeftRadius="@dimen/_3fdp" android:bottomRightRadius="@dimen/_3fdp" />
                    </shape>
                </item>
            </layer-list>
        </item>
    </selector>
    

    更新:

    上面的缺点是android:width 在 API 级别 23 上可用。但是您可以在 &lt;size&gt; 标记中使用它以在任何 API 级别上可用,结果是一样的:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_checked="true">
            <layer-list>
                <item android:gravity="top|center_horizontal">
                    <shape android:shape="rectangle">
                        <size android:width="50dp" android:height="@dimen/_5fdp" />
                        <solid android:color="@color/red" />
                        <corners android:bottomLeftRadius="@dimen/_3fdp" android:bottomRightRadius="@dimen/_3fdp" />
                    </shape>
                </item>
            </layer-list>
        </item>
    </selector>
    

    预览:

    【讨论】:

    • 谢谢人 这行帮助了我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    相关资源
    最近更新 更多