当前位置: 首页 > 知识库问答 >
问题:

在BottomNavigationView中未省略标签

壤驷坚
2023-03-14

我有一个带有BottomNavigationView的布局,属性app: labelVisibilityMode设置为标记

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        app:labelVisibilityMode="labeled"
        app:menu="@menu/navigation" />

</FrameLayout>

菜单有五项:

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

    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/ic_navigation"
        android:title="Short" />

    <item
        android:id="@+id/navigation_notifications_1"
        android:icon="@drawable/ic_navigation"
        android:title="Short" />

    <item
        android:id="@+id/navigation_dashboard"
        android:icon="@drawable/ic_navigation"
        android:title="Longer text123" />

    <item
        android:id="@+id/navigation_notifications_2"
        android:icon="@drawable/ic_navigation"
        android:title="Short" />

    <item
        android:id="@+id/navigation_notifications_3"
        android:icon="@drawable/ic_navigation"
        android:title="Short" />

</menu>

第三项标签过长(第二个单词没有省略,只是没有显示):

标签稍微短一点会导致正确的行为:

有没有办法处理更长的标签?最好的解决方案是省略号并显示“更长的文本…”当全文没有空间时。

共有2个答案

解河
2023-03-14
 <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|start"
        app:itemIconTint="@color/color_c3c3c3"
        app:itemTextColor="@color/color_aaaaaa"
        android:textSize="@dimen/_13sdp"
        app:menu="@menu/nav_bottom" />

试试这个

贺君浩
2023-03-14

我也有同样的问题,搜索了很多。最后,我在代码中添加了一个解决方案。只需在代码中添加以下行即可。

 BottomNavigationMenuView menuView = (BottomNavigationMenuView) navigation.getChildAt(0);
    for (int i = 0; i < menuView.getChildCount(); i++) {
        BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
        View activeLabel = item.findViewById(R.id.largeLabel);
        if (activeLabel instanceof TextView) {
            activeLabel.setPadding(0, 0, 0, 0);
        }
    }
 类似资料:
  • 省略 不推荐省略 0 值单位,原因如下: CSS 规范中可以省略单位只有 [<length-percentage>](https://drafts.csswg.org/css-values-3/#typedef-length-percentage),其他比如角度单位 deg 在 Chrome 中可以省略, 这是浏览器的 Bug。 注:可以省略的单位包括:%|em|ex|ch|rem|vw|vh|v

  • Google发布了带有BottomNavigationView的新支持库v25 有什么方法可以去除物品标签吗?

  • 问题内容: 我正在查看一些代码,并看到了以下符号。我不确定这三个点的含义以及您所说的名称。 谢谢。 问题答案: 这意味着此方法可以接收多个Object作为参数。为了更好地低估,请从此处检查以下示例: 省略号(…)标识可变数量的参数,并在以下求和方法中进行了演示。 在JVM的限制内,使用所需的任意多个用逗号分隔的整数参数来调用sumsum方法。一些示例:sum(10,20)和sum(18,20,30

  • 我有一个包含BottomNavigationView的活动,这个bottomnav帮助该活动显示三个片段。这些片段加载良好,我使用AsyncTask来完成每一个繁重的操作,而在UI线程中,我会显示一个ProgressBar,直到所有内容都加载<我的片段有一个奇怪的行为:第一次加载片段时,实际显示它需要一些时间,而不是用进度条立即显示<这件事只有第一次发生,而且只发生在这个片段中<片段代码仅包含以下

  • 我想创建一个符合JSON proto3的字符串,包括以下部分: 我不知道怎么做。这似乎是一个列表 我只尝试了“Newtonsoft Json. NET”,但这个问题对任何其他JSON库或自定义编码方法都是开放的。如何做到这一点? 编辑:这是一个序列化问题。我无法控制反序列化程序代码。

  • 问题内容: 我一直在阅读,在文件末尾使用PHP close标签是一种不好的做法。标头问题在以下情况下似乎无关紧要(这是迄今为止唯一的好参数): 现代版本的PHP在php.ini中设置了output_buffering标志。如果启用了输出缓冲,则可以在输出HTML之后设置HTTP标头和cookie,因为返回的代码不会立即发送到浏览器。 每本优秀实践书籍和Wiki均以该“规则”开头,但没有人提供充分的