删除/隐藏底部导航视图上的所选项目标题

问题描述 投票:0回答:3

我需要创建一个自定义底部导航视图。情况是当我单击任何项目时,标签消失,只显示图标。示例图像是

我正在尝试使用类似的选择器创建自定义

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

    <item
        android:id="@+id/tested"
        android:icon="@drawable/selector_nav_tested"
        android:title="tested"/>

</menu>

但它只是改变了图标。如果我使用

labelVisibilityMode = LABEL_VISIBILITY_UNLABELED
,则标签不会显示在任何导航项上。有没有办法通过在其
setOnNavigationItemSelectedListener
中添加代码来自定义它,或者我需要使用库吗?

android kotlin bottomnavigationview
3个回答
0
投票

这是默认完成的。您可以使用

覆盖它
app:labelVisibilityMode="labeled"

在您的 BottomNavigationView 上,它应该强制覆盖它以显示所有标签。

 app:labelVisibilityMode="auto"

 app:labelVisibilityMode="labeled"

app:labelVisibilityMode="unlabeled"

以上三点是要保留的要点。.auto是点击后隐藏..labeled是一直有标签,unlabeled是没有标签。

希望这有帮助。


0
投票

labelVisibilityMode 属性可用于调整每个导航项的 text 标签的行为。有四种可见模式:

LABEL_VISIBILITY_AUTO(默认):当有 3 个或更少的项目时,标签表现为“已标记”,或者当有 4 个或更多项目时,标签表现为“已选择”

LABEL_VISIBILITY_SELECTED:标签仅显示在选定的导航项上

LABEL_VISIBILITY_LABELED:标签显示在所有导航项上

LABEL_VISIBILITY_UNLABELED:所有导航项的标签均隐藏

<com.google.android.material.bottomnavigation.BottomNavigationView
      android:id="@+id/bottom_navigation"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
**app:labelVisibilityMode="unlabeled"**
      app:menu="@menu/bottom_navigation_menu" />

0
投票

试试这个

生成可绘制对象,例如 tab_item_foreground.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@android:color/transparent" />
<item android:color="@android:color/darker_gray"  />

然后这样使用。

app:itemTextColor="@drawable/bnv_tab_item_foreground"

对于图标的圆角背景试试这个。

app:itemActiveIndicatorStyle="@style/App.Custom.Indicator"

而且风格应该是这样的。

<style name="App.Custom.Indicator" parent="Widget.Material3.BottomNavigationView.ActiveIndicator">
    <item name="android:color">@color/primary</item>
    <item name="android:width">@dimen/_50dp</item>
    <item name="android:height">@dimen/_50dp</item>
</style>
© www.soinside.com 2019 - 2024. All rights reserved.