【问题标题】:Adding an element to the NavigationBar向 NavigationBar 添加元素
【发布时间】:2019-01-26 15:06:56
【问题描述】:

有什么办法可以在导航栏中添加如图所示的元素吗?
我的意思是你看到的第四个元素。

【问题讨论】:

  • 标准 Android 应用无法做到这一点,抱歉。
  • 你能得到的最接近的是实现你自己的底部栏,就在它上面。但是你不能修改那个导航栏。
  • SwiftKey 应用程序,我放了一张图片以便更好地理解。

标签: java android uinavigationbar navigationbar


【解决方案1】:

据我所知,在不扭曲标准 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);
    }
}

希望对你有所帮助。

【讨论】:

  • SwiftKey 应用程序,我放了一张图片以便更好地理解。
猜你喜欢
  • 2020-04-20
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多