android - 将现有 fragment 置于最前面

标签 android android-fragments back-stack

我有一个带有 n 个按钮的应用程序。每个按钮创建一个新 fragment 并将其附加到 View 。因此,如果我按顺序触摸按钮 A、B、C,则会创建并堆叠 fragment FA、FB 和 FC:

FA,FB,FC

现在,如果我再次按下 A,就会创建并堆叠一个新的 fragment ,因此堆栈变为:

FA,FB,FC -> FA,FB,FC,FA

有没有办法从堆栈中检索现有 fragment (如果存在)并将其放在前面?所以如果我有堆栈

FA,FB,FC

然后再次按下“A”键,FA fragment 从backstack中移除并放在前面:

FA,FB,FC -> FB,FC,FA

如果我按“C”,堆栈将变为

FB,FC,FA -> FB,FA,FC

提前致谢。

最佳答案

要实现此目的,您需要获取放置Fragment 的父级View,或Fragment 的根目录。一旦你拥有它,只需调用每个 View 都有的 bringToFront() 方法,你就会将该 View 移到前面。

您可以使用 findViewById() 方法获取您的View 或您的View 的容器View你的上下文。

关于android - 将现有 fragment 置于最前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24370451/

相关文章:

android - MotionLayout 的 child 忽略 "setVisibility"

android - Google Play控制台-崩溃报告:java.lang.RuntimeException

java - 从回调函数将对象从 android ViewModel 返回到 fragment

android - noHistory 与 finish() - 哪个是首选?

android - 根据用户意愿更改背景图像

java - Android 中的服务器端验证 : asynchronous method called in if statement workaround

android - 在同一 fragment 的不同实例之间进行通信

android - ListView 页脚不显示

android - 从后台堆栈恢复 fragment 时的 savedInstanceState

Android - 如何检测堆栈中的最终 Activity