是否有一个与SINGLE_TOP标志相当的片段?

问题描述 投票:4回答:2

我有一个应用程序,当用户导航时,它会替换容器中的碎片。(最初是基于android studio创建的方法,如果你启动一个新的项目并选择spinner导航)

我希望用户能够按下后退按钮来返回以前的页面,但不必按一百万次后退来退出应用。

我可以将碎片添加到后堆栈中,但这意味着可能会有一个巨大的堆栈,或者我必须手动找到最后一个实例并清除部分堆栈。如果我使用活动,我可以用SINGLE_TOP标志来启动我的intents。在替换碎片时,有没有一种等价的方法可以使用?

android android-fragments flags
2个回答
2
投票

似乎没有对应的方法。

目前最好的选择是调用remove(fragment)作为事务的一部分,尽管这样做的缺点是它似乎会在堆栈中弹出任何在它上面的东西。


0
投票

有一个新的Android jetpack组件,名为 Android导航组件 ,将帮助你获得预期的目标。这里有一个很好的 教程 在它上面,你还会发现使用的是 SingleTop. 这篇文章描述了一个类似于哪个与你的用例相关的行。

app:launchSingleTop 是用来判断导航动作是否应该以单顶方式启动(即在后堆栈的顶部最多只有一个给定目标的副本)。这个功能类似于android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP对活动的作用。

© www.soinside.com 2019 - 2024. All rights reserved.