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

无法使用导航组件导航到所需的片段

江鹏飞
2023-03-14

我正在我的应用程序中使用导航组件。我试图在单击操作栏图标时导航到片段,但它不起作用。以下是我的代码:

操作菜单。xml

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

<item
    android:title=""
    android:id="@+id/cart_notif"
    android:icon="@drawable/ic_order"
    app:showAsAction="always"
    android:actionLayout="@layout/notification_badge"/>

</menu> 

nav_主机。xml

 <fragment
    android:id="@+id/cartFragment"
    android:name="BottomFragments.CartFragment"
    android:label="Cart"
    tools:layout="@layout/fragment_cart">

    <action
        android:id="@+id/action_cartFragment_to_cakeFragment"
        app:destination="@id/cakeFragment"
        app:enterAnim="@anim/nav_default_enter_anim"
        app:popUpTo="@id/cakeFragment"
        app:popUpToInclusive="true" />
</fragment>

主要活动。Java语言

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

   if(item.getItemId() == R.id.cart_notif){
       NavController navController = Navigation.findNavController(MainActivity.this,R.id.fragment);
       navController.navigate(R.id.cartFragment);
     }

    return super.onOptionsItemSelected(item);
}

@Override
public boolean onSupportNavigateUp() {
     navController.navigateUp();
    return super.onSupportNavigateUp();
}

这种方法不起作用-我如何导航?

共有1个答案

楚弘益
2023-03-14

在这里,我可以看到您正在使用选项ItemSelected来从一个屏幕导航到另一个屏幕。相反,您应该使用onNavigationItemSelected方法。

有关更多详细信息,请参阅此答案。

 类似资料:
  • 我正在尝试使用导航组件导航到另一个活动(登录)。 目前,活动1具有导航图1,活动2具有导航图2。 我在中为添加了一个目标。当我导航时,我得到一个空白屏幕,尽管有一个导航图,其中包含另一个片段的起始目标。 没有被调用,或者至少没有被我在中的断点击中。 当我在navGraph1中嵌套navGraph2时,我可以导航到navGraph2中的起始目标片段。navGraph2中的这个起始目的地位于compo

  • 我正在我的应用程序中尝试导航架构组件。早些时候,我使用片段事务来实现以下功能。基本上,我想从导航。 碎片- 如果我正在使用导航组件并尝试 然后结果是FragmentA被FragmentB替换并且背景片段不可见。 我想知道一个解决方案,如果导航架构组件允许的话。 附言:我听说过嵌套导航主机,但从内部使用它好吗。 更新: FragmentB将有进一步交易的行动,例如: 碎片- 当用户按下后退按钮时,片

  • 我正在一个新的Android应用程序上使用导航组件,但我不知道怎么做 首先,我有我的主活动,我有main_navigation_graph 主要活动 NavHostFragment main_navigation_graph里面有3个碎片 这里一切都很好。问题是当我到达最后一个片段时,因为在这个片段上,我想根据BottomNavigationView输入(暂时)显示一些子片段(在新的NavHost

  • 导航组件说明 组件 说明 最低版本 navigator 页面链接 1.0.0 functional-page-navigator 用于跳转插件功能页 不支持 navigator 属性 类型 默认值 必填 说明 最低版本 url string 否 当前小程序内的跳转链接 open-type navigate 否 跳转方式 hover-class string navigator-hover 否 指定

  • 实际上,我正在我的应用程序中使用新的架构组件,并且我已经设置了导航组件。我有一个导航抽屉,我想用它。我已经设置好了,但我面临一些问题: 1-抽屉不会自动关闭。菜单正常工作并导航到正确的位置,但导航后不会关闭。我必须添加一个目的地ChangedListener才能自己关闭它。 在代码实验室里,抽屉自动关闭,我真的不明白为什么。 2-向上按钮打开抽屉。当我导航到非顶级片段时,菜单图标变为向上箭头,但当