我在我的应用中使用导航组件。我试图通过单击操作栏图标导航到 Fragment,但它不起作用。 下面是我的代码:
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();
}
这种方法不起作用 - 我该如何导航?
答案 0 :(得分:0)
在这里我可以看到您正在使用 onOptionsItemSelected
从一个屏幕导航到另一个屏幕。相反,您应该使用 onNavigationItemSelected
方法。
有关详细信息,请参阅 this 答案。