繁体   English   中英

Android Navigation 组件更改 backstack

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM