繁体   English   中英

android在弹出堆栈之前显示下一个片段

[英]android show next fragment before popping backstack

我有几个片段,彼此保持替换(将事务添加到后台)。 根据用户在某些时候的操作,我需要清除所有(或某些)先前的片段,并仅显示一个新片段。

为此,我目前正在执行popBackStack()首先清除它们,然后执行replace() ,这按预期工作。 但是,有时在我们看到新片段之前会闪现以前的片段。 我认为这是因为在显示新片段之前,我先弹出了堆栈。

因此,我只是想知道是否有一种简单的方法来首先显示新的片段,然后清除以前的事务的Backstack?

编辑:您是对的,这是因为您要在添加片段之前从后堆栈中删除。

如果不需要在后堆栈上使用新的片段,则只需在单个事务中首先添加新片段,然后在事务之后从后堆栈中弹出其余片段。 (或者,如果确实需要,请从后堆栈中删除所有片段,但新添加的片段除外)

同样,如果仅调用replace(R.id.containter,new Fragment(),TAG),则添加到容器中的所有片段都将被新的片段替换。 (然后您也可以手动清除后堆栈)

这两种解决方案都应该删除有时会看到的闪存,因为在这种情况下,您在添加新片段之前就开始删除片段,因此您可以看到旧的片段将自己删除。

如果问题仍然存在,您可以尝试将新的片段附加到活动中并显示其自身之后清除后台堆栈(但我认为这是没有必要的,我尝试了上述解决方案,在此方法中,我首先调用添加片段并弹出整个后栈)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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