【发布时间】:2019-01-26 15:06:56
【问题描述】:
【问题讨论】:
-
标准 Android 应用无法做到这一点,抱歉。
-
你能得到的最接近的是实现你自己的底部栏,就在它上面。但是你不能修改那个导航栏。
-
SwiftKey 应用程序,我放了一张图片以便更好地理解。
标签: java android uinavigationbar navigationbar
【问题讨论】:
标签: java android uinavigationbar navigationbar
据我所知,在不扭曲标准 Android 应用程序的对齐方式的情况下,将三个以上的项目放入底部栏中是非常不可能的。 更好地制作水平方向的线性布局。或者
您可以使用我下面提到的方法来停止集群菜单项。您应该将此方法调用为传递“BottomNavigationView”的“onCreate”方法。
// 禁用移位模式的方法(底部导航)
private void disableShiftMode(BottomNavigationView view) {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
try {
Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode");
shiftingMode.setAccessible(true);
shiftingMode.setBoolean(menuView, false);
shiftingMode.setAccessible(false);
for (int i = 0; i < menuView.getChildCount(); i++) {
BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
item.setShiftingMode(false);
*//set once again checked value then view will be updated*
item.setChecked(item.getItemData().isChecked());
}
} catch (NoSuchFieldException e) {
Log.e("BNVHelper", "Could not get shift mode field!", e);
} catch (IllegalAccessException e) {
Log.e("BNVHelper", "Sorry Can not change value!", e);
}
}
希望对你有所帮助。
【讨论】: