[英]Android Navigation Component Backstack on self call
这正是“Single Top”选项所做的:只允许该目的地的单个副本位于后堆栈的顶部。
<action android:id="@+id/action_nav_detail_self"
app:destination="@id/nav_detail"
app:launchSingleTop="true"/>
直接从 D 导航到 A 有一种棘手的方法
在您的父活动中覆盖 onBackpressed
@Override
public void onBackPressed() {
if (Navigation.findNavController(this,R.id.nav_host_fragment)
.getCurrentDestination().getId() == (id of D)) {
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
navController.navigate(R.id.action_D_to_A);
}
else
super.onBackPressed();
}
您的 popUpTo 将返回到 DetailFragment ,然后由于包含而将其弹出。
<action
android:id="@+id/action_nav_detail_self"
app:destination="@id/nav_detail"
app:popUpTo="@id/nav_detail"
app:popUpToInclusive="true" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.