3

我有BottomNavigationView一个长标签文本,它没有显示完整的标签。

我发现标签上BottomNavigationView有一个maxLines="1",但我不知道如何修改它以允许 2 行标签。

4

2 回答 2

2

目前没有办法android:maxLines="1"改变BottomNavigationMenuView.

这是一种解决方法,它可以停止与未来的版本一起使用。

BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottomNavigationView.getChildAt(0);

for (int i = 0; i < menuView.getChildCount(); i++) {
      BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
      TextView smallLabel = item.findViewById(R.id.smallLabel);
      TextView largeLabel = item.findViewById(R.id.largeLabel);

      smallLabel.setMaxLines(2);
      largeLabel.setMaxLines(2);
}

只是为了解释。
BottomNavigationView. _ 在这里您可以找到:

<merge xmlns:android="http://schemas.android.com/apk/res/android">
  <ImageView
      android:id="@+id/icon"
      ../>
  <com.google.android.material.internal.BaselineLayout
    ..>
    <TextView
        android:id="@+id/smallLabel"
        android:maxLines="1" 
        ../>
    <TextView
        android:id="@+id/largeLabel"
        android:maxLines="1"
        .../>
  </com.google.android.material.internal.BaselineLayout>
</merge>
于 2019-11-15T19:17:42.487 回答
2

design_bottom_navigation_item.xml您也可以在项目中添加自己的。由于名称完全相同,它将覆盖设计库中的名称。只需确保 ID 和视图类型相同即可。

请注意,如果他们在库的更高版本中更改原始文件名,则修复将不再起作用。

于 2019-11-15T19:32:25.670 回答