【问题标题】:BottomNavigationView items are not placed with equal width [duplicate]BottomNavigationView 项目的宽度不相等[重复]
【发布时间】:2019-09-19 11:22:34
【问题描述】:

我正在使用 BottomNavigationView。似乎一切都很好,但我遇到的问题是物品的宽度不相等。

<android.support.design.widget.BottomNavigationView
        android:id="@+id/bottomBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="@color/colorPrimary"
        android:layout_alignParentBottom="true"
        app:itemBackground="@color/colorPrimary"
        app:itemIconTint="@color/bottom_nav_color"
        app:itemTextColor="@color/bottom_nav_color"
        app:menu="@menu/bottombar_tabs_new"></android.support.design.widget.BottomNavigationView>

这是我的菜单文件。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<item
    android:id="@+id/tab_home_check"
    android:icon="@drawable/ic_home"
    android:title="Home"
    />
<item
    android:id="@+id/tab_rides"
    android:icon="@drawable/ic_road"
    android:title="Rides"
     />
<item
    android:id="@+id/tab_payment"
    android:icon="@drawable/ic_payment"

    android:title="Payment"
     />
<item
    android:id="@+id/tab_profile"
    android:icon="@drawable/ic_profile"
    android:title="Profile"
     />
<item
    android:id="@+id/tab_support"
    android:icon="@drawable/ic_support"
    android:title="Support"
     />
</menu>

这就是我得到的结果。

非常感谢您的高级帮助!

【问题讨论】:

  • app:labelVisibilityMode="labeled" 未找到
  • 您需要将您的dependencies 更新为28.0.0-alpha1
  • 更新后还是说
  • 与问题分享您的dependencies

标签: android bottomnavigationview


【解决方案1】:

使用这条线

app:labelVisibilityMode="labeled"

【讨论】:

    【解决方案2】:

    移除移位模式

    @SuppressLint("RestrictedApi")
    private fun removeShiftMode(view: BottomNavigationView) {
       val menuView = view.getChildAt(0) as BottomNavigationMenuView
       try {
       val shiftingMode = menuView.javaClass.getDeclaredField("mShiftingMode")
       shiftingMode.isAccessible = true
       shiftingMode.setBoolean(menuView, false)
       shiftingMode.isAccessible = false
       for (i in 0 until menuView.childCount) {
         val item = menuView.getChildAt(i) as BottomNavigationItemView
         item.setShiftingMode(false)
         item.setChecked(item.itemData.isChecked)
       }
       } catch (e: NoSuchFieldException) {
       Log.e("NoSuchFieldException", "Unable to get shift mode field")
       } catch (e: IllegalAccessException) {
       Log.e("IllegalAccessException", "Unable to change value of shift mode")
    }
    
    }
    

    【讨论】:

    • 现在我们不需要使用上面的代码,我们可以使用app:labelVisibilityMode="labeled"来禁用移位效果模式
    • 哦,谢谢,我也会在我的应用程序中使用它
    猜你喜欢
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2018-02-23
    • 2018-10-01
    • 1970-01-01
    • 2017-03-14
    • 2017-11-14
    • 1970-01-01
    相关资源
    最近更新 更多