我有一个简单的问题,如果我从容器中删除片段A并添加片段B,片段A的状态是否会丢失?
我有我的应用程序用户拍照(片段A),然后我隐藏片段A并显示或创建片段B以允许用户查看图像。在片段B上,用户可以选择重新拍摄照片,在这种情况下,我正在移除片段B并显示片段A.问题是相机预览没有被重新初始化,因此用户没有获得凸轮预览拍另一张照片。我通过在拍摄照片时从容器中删除片段A来解决这个问题。
问题是我有很多碎片,其中大多数碎片需要保持导航状态,我知道show和hide保持状态,但我不想有一个'特殊情况'我所拥有的替换片段A和B,并显示和隐藏片段C,D,E,F ....
答案 0 :(得分:1)
删除或替换片段并将事务添加到后台堆栈时,将删除(不销毁)已删除的片段。如果用户导航回还原片段,则会重新启动。如果不将事务添加到后台堆栈,则在删除或替换时会破坏该片段。要允许用户在片段事务中向后导航,必须在提交FragmentTransaction之前调用addToBackStack()。