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

底部导航以编程方式查看更改项

邓正谊
2023-03-14

我正在使用底部导航视图并希望以编程方式更改项目。有5个项目,当我设置第四个项目时,第一个项目仍然处于活动状态。

<android.support.design.widget.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:itemBackground="@color/color_white"
        app:itemIconTint="@color/drawer_item"
        app:itemTextColor="@color/drawer_item"
        android:layout_gravity="start"
        app:menu="@menu/nav_bar_menu"/>

共有3个答案

宇文嘉勋
2023-03-14

这对我有用拯救了我玩碎片

NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.getMenu().findItem(R.id.my_navigation_item).setChecked(true);
navigationView.getMenu().performIdentifierAction(R.id.my_navigation_item, 0);    
宗穆冉
2023-03-14

目前无法通过代码更改项目,但找到了在BottomNavigationView中设置初始选定项目索引/id的解决方案

茹高义
2023-03-14

在API 25.3.0中,您可以使用setSelectedItemId

BottomNavigationView bottomNavigationView;
bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottom_navigation);
bottomNavigationView.setSelectedItemId(R.id.item_4th);
 类似资料:
  • 问题内容: 我有一个带有标题的导航栏。当我双击文本以将其重命名时,它实际上说这是一个导航项,所以可能就是这样。 我正在尝试使用代码来更改文本,例如: 那显然不是我的代码,只是显示了它是如何工作的。 因此,每当我按下按钮时,我都希望标题更改。 问题答案: 您可以通过更改显示的视图控制器的标题来更改标题: 通常,这是在视图控制器上加载视图时完成的: 但是,这仅在将视图控制器嵌入UINavigation

  • 我尝试通过主题或编程方式更改导航栏的颜色。 以下是我到目前为止所做的尝试: 在样式v21中: 以编程方式: 问题是:它在Nexus设备(Android 7.1.1)上运行得很好,但在LG Q6上运行得不好(同样适用于Android 7.1.1)。 我认为有办法做到这一点(因为Youtube应用程序有自己的导航栏颜色),但我不知道怎么做。 我也尝试了几乎所有的东西,这里,这里,这里和这里,都没有成功

  • 我想更改android手机本机底部导航的颜色。就像下面的图片一样,它是完全黑暗的。这真的有可能吗?如果是,我该怎么做? 非常感谢。

  • 问题内容: 我使用了Android Studio中提供的Navigation Drawer模板。在我的活动布局中,我有以下代码: 我需要以编程方式更改面板的宽度。我认为更改它的正确区域是: 但是我不明白如何实现我的目标。 / 更新 / 抽屉面板的图标未显示在操作栏中 那就是selectItem方法 问题答案: 基于从Navigation Drawer模板生成的代码,可以通过将代码添加到Naviga

  • 基本上,我有以下导航图: 我想在到达后立即将导航图中的起点更改为(以防止在按下后退按钮时返回到,就像启动屏幕一样)。 这是我的代码: 但是,显然它不工作,它回到后按后退按钮。 我做错了吗?还有其他解决办法吗?

  • 我有底部导航与片段和改型api调用 我调用来切换片段,如下所示 洛克卡特 在.java:6606)在java.lang.reflect.method.invoke(method.java)在com.android.internal.os.runtimeinit$methodandargscaller.run(runtimeinit.java:518)在com.android.internal.os