我有一个布局,其中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"
)-第二个单词没有省略号,只是没有显示:
使标签短一些会导致正确的行为:
有没有办法处理更长的标签?最好的解决方案是将其椭圆化并在没有足够的空间显示整个文本时显示“较长的文本...”。
答案 0 :(得分:0)
我遇到了同样的问题,进行了很多搜索。最后,我找到了要添加到代码中的解决方案。 只需在代码中添加以下几行即可。
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);
}
}
答案 1 :(得分:0)
<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" />
尝试