【问题标题】:Unable to navigate to desired fragment using navigation component无法使用导航组件导航到所需的片段
【发布时间】:2021-02-04 09:56:18
【问题描述】:

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

action_menu.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_host.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>

MainActivity.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();
}

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

【问题讨论】:

  • cartFragment 是导航图的一部分吗?
  • 我已经更新了我的帖子并添加了nav_graph.xml文件。
  • 当我单击cartFragment 中的后退箭头时,它也不会导航到cakeFragment。即使我在导航图中定义了操作。

标签: java android navigation


【解决方案1】:

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

更多详情请查看this答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多