我有两个问题:
1.我想在用户返回主页面时删除后栈中的所有碎片。但是,当我调用以下语句时,主页面上出现闪烁。
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
如何消除这种闪烁?我试过这里的方法没有运气。Pop the fragment backstack without playing the Pop-Animation *
1.在片段过渡中我使用replace方法。但是在一些过渡中,我不想在用户按下back按钮时重新加载整个数据。为了实现这个,我使用了hide()和add()方法。当上面这样做时,由于有这么多动画,回栈删除过程变得非常糟糕。
是否有最佳实践来实现这一点?
3条答案
按热度按时间gojuced71#
我遇到的问题和(1)完全一样。下面是对我有效的方法:
所以,每当我想用一个新的片段来替换backstack中的任何内容时,我就使用下面的函数:
我还必须重写onBackPressed(),如下所示:
希望这对你有帮助!
xkftehaa2#
找到一个简单的方法https://stackoverflow.com/a/67005552/7418129。如果我迟到了,对不起。但它肯定会帮助别人。
eqfvzcg83#
对我来说最好的解决方案是添加
setReorderingAllowed(true)
。示例: