0

我有一个简单的问题,如果我从容器中删除片段 A 并添加片段 B,片段 A 的状态是否丢失?

我有我的应用程序,用户在其中拍照(片段 A),然后我隐藏片段 A 并显示或创建片段 B 以允许用户查看图像。在片段 B 上,用户可以选择重新拍摄照片,在这种情况下,我删除了片段 B 并显示了片段 A。问题是相机预览没有被重新初始化,所以用户没有得到凸轮预览拍另一张照片。我通过在拍摄照片时从容器中删除片段 A 来解决这个问题。

问题是我有很多片段,其中大部分我需要保持导航时的状态,我知道显示和隐藏保持状态,但我不想有一个“特殊情况”,我已经替换了片段 A 和 B 以及显示和隐藏片段 C、D、E、F....

4

1 回答 1

1

当您删除或替换片段并将事务添加到后台堆栈时,被删除的片段将停止(而不是销毁)。如果用户返回以恢复片段,它会重新启动。如果您不将事务添加到后台堆栈,则片段在删除或替换时会被销毁。要允许用户通过片段事务向后导航,您必须在提交 FragmentTransaction 之前调用 addToBackStack()。

于 2013-08-09T09:44:01.897 回答