我有一个应用程序在用户导航时替换容器中的片段。 (最初基于android studio创建的方法,如果你开始选择微调器导航的新项目)
我希望用户能够按后退按钮返回上一页,但不必按下一百万次退出应用程序。
我可以将片段添加到backstack但是这意味着可以有一个巨大的堆栈或者我必须手动找到最后一个实例并清除堆栈的一部分。如果我使用活动,我可以使用SINGLE_TOP标志启动我的意图。替换片段时是否可以使用等效的方法?
答案 0 :(得分:1)
似乎没有等价物。
目前最好的选择是调用remove(fragment)作为事务的一部分,尽管它的缺点是它似乎在堆栈中弹出任何超出它的东西
答案 1 :(得分:0)
有一个名为Android navigation component的新Android jetpack组件,它将帮助您实现所需的目标。这是一个不错的tutorial,在这里您还会发现SingleTop
的用法。本文介绍了与您的用例相关的一行。
是否使用
app:launchSingleTop
导航动作 以单顶形式启动(即,一个给定最多有一个副本 目的地位于后堆栈顶部)。此功能类似于 android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP如何与 活动。