【问题标题】:Labels not ellipsized in BottomNavigationView在 BottomNavigationView 中没有椭圆的标签
【发布时间】:2018-10-08 09:08:56
【问题描述】:

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

<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>

第三项有问题,标签较长 ("Longer text123") - 第二个单词不是椭圆形的,而是根本不显示:

将标签缩短一点会导致正确的行为:

有没有办法处理更长的标签?最好的解决方案是省略它并在没有空间容纳整个文本时显示“Longer text...”。

【问题讨论】:

    标签: android bottomnavigationview


    【解决方案1】:

    我遇到了同样的问题并进行了很多搜索。最后我得到了一个要添加到代码中的解决方案。 只需将以下行添加到您的代码中。

     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);
            }
        }
    

    【讨论】:

    • 这个解决方案还帮助我解决了菜单项几乎不合适的问题。它们在未选中时显示正常,但在选中时缩小。谢谢!
    【解决方案2】:
     <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" />
    

    试试这个

    【讨论】:

      猜你喜欢
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多