[英]Android Navigation Component change backstack
我尝试使用 android 导航组件。 我的应用程序中有一些有趣的案例我有一些片段: A,B,C,D,E首先我打开A -> B -> C但是然后我打开片段“C”,我需要更改它应该的返回堆栈就像A -> D -> E -> C
对于 onBackPressed 导航,我需要删除“B”片段并添加以前从未打开过的“D & E”片段
你可以像这样处理背压。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// open another fragment which you want
}
return true;
}
当你打开C时,你应该从堆栈中删除B.
Android导航是一个相对较新的,我没有探索整个库,以满怀信心地说,你不能缺乏执行你的用例的能力。 据说你可以在你的导航资源文件上添加app:popUpTo
。 这意味着无论后堆栈上的内容如何,您的片段都将始终弹出到预定义的片段。 这是一些代码示例:
<fragment
android:id="@+id/c"
android:name="com.example.myapplication.C"
android:label="fragment_c"
tools:layout="@layout/fragment_c">
<action
android:id="@+id/action_c_to_a"
app:destination="@id/a"
app:popUpTo="@+id/a"
app:popUpToInclusive="true"/>
</fragment>
请查看此处的文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.