当前位置: 首页 > 知识库问答 >
问题:

底部导航视图图标/文本菜单项不适用于某些设备

仉宸
2023-03-14

Android BottomNavigationView图标/文本菜单项不适合某些设备(共4项)。在nexus 5 emulator上,必须旋转才能显示所有项目。无论是从纵向视图还是横向视图开始,图标仅在设备旋转时显示(例如,请参见下面的图像)

我试过一些我可以测试的物理设备,它在所有这些设备上都能正常工作(无论大小),我相信根据测试仪,它对三星S7/8也不起作用,但无法证实这一点。

在肖像中打开

纵向到横向旋转

横向到纵向

景观开放

共有2个答案

丌官晔
2023-03-14

在我的情况下,这是一个完全不同的问题。

我正在从我的服务器响应中检查一个用户权限变量,然后删除导航项,但只检查活动何时是onCreate中的新实例,这就是为什么它在屏幕旋转上不同。

if (savedInstanceState == null) 
   checkUserPermissions();

private void checkUserPermissions(){
   navigation.getMenu().removeItem(R.id.navigation_pickup);
...
慕阳平
2023-03-14

试试这个。

public static 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);            
        item.setChecked(item.getItemData().isChecked());
      }
    } catch (NoSuchFieldException e) {
      Log.e("BNVHelper", "Unable to get shift mode field", e);
    } catch (IllegalAccessException e) {
      Log.e("BNVHelper", "Unable to change value of shift mode", e);
    }
  }

并将其添加到您的底部导航视图

BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
disableShiftMode(navigation); //add the function
navigation.setSelectedItemId(R.id.your_navigation_choice); // set your first icon
 类似资料:
  • 我想在切换项目时切换到底部导航视图的图标。 我有浅蓝色图标和深蓝色图标的选定项目。我正在为每个导航项目使用选择器drawable,但我看到下面这样的图像,灰色为非活动图像,蓝色为活动图像 这是我的代码 bottom_nav_menu 家 和选择器 计划程序选择器 设置选择器 收藏夹选择器 首页选择器 活动代码 我做错了什么?请帮助。。。 编辑:我正在使用以下绘图工具 在此处输入链接描述 在此处输入

  • 我的应用程序有问题。我有一个底部导航视图,包含3个不同的片段,尽管目前只有主要的内容。当我试图从左侧的两个片段中的一个移动到主视图时,问题就出现了,即当底部导航视图被隐藏时。我附上了主代码。 PD:我有25.3.1版本的所有库(如果有用的话)。 感谢您的关注。 activity\u main。xml 主要活动。Java语言 我也给你添加了两张图片。 Ofertas片段 主片段

  • 但是,当我初始化BottomNavigationView时,我会得到: 我正在从一个片段初始化BottomNativigationView。我猜这就是问题所在,但我想不出解决办法。 下面是为片段设置导航的活动的BottomNavigationView xml。

  • 我在我的应用程序中添加了。 主要的xml bottom\u navigation\u main。xml 主活动单击 我想更改所选位置底部导航的图标。当用户单击一个项目时,我们如何实现此功能? (如果用户单击了一个项目,则图标将更改为另一个项目)

  • 我有一个关于底部导航栏的奇怪问题,虽然我花了大量时间在它上面,但我无法解决。当我以“推荐”的方式(从许多教程中)使用它时,它就是无法导航。 那么,我所说的“推荐”方式是什么意思呢:我有一个单独的acticity,其中有一个名为“MainActivity”的navHostFragment。这个主要活动有一个XML布局文件,我将底部导航栏放在其中。BottomNavigationBar还有一个XML布

  • 我想在我的项目中包括底部导航菜单,但它不起作用。底部导航菜单中没有显示菜单图标。我使用的是Android Studio北极狐。我做了所有正确的步骤,但仍然面临问题。这是我的代码,请帮我解决这个问题。谢谢。 主要活动Xml res\菜单\底部导航菜单 build.gradle 主题。xml