我有一个应用程序,其中包含一个Activity和两个片段。期望的行为是(蓝色高亮显示的用户交互):布局变化时的片段管理
在肖像
在景观
我目前的解决办法是:
布局景观
FrameLayout
ContainerRed(FrameLayout)
ContainerYellow(FrameLayout)
布局肖像
LinearLayout
ContainerRed(FrameLayout weight=1)
ContainerYellow(FrameLayout weight=1)
当用户点击绿色按钮,我做了以下交易:
- 在画像:删除FragmentA ,将FragmentB添加到containerYellow,addToBackstack
- 在景观:添加FragmentB到contanerYellow,addToBackstack
这实现,除非你交易后旋转设备,例如,如果你是在肖像,往屏幕B1一个正确的行为,然后旋转设备横向FragmentA插槽是空的。
此外,如果您在屏幕B2中并将屏幕旋转至肖像,FragmentA将显示在FragmentB的背景中。
我该如何解决这个问题?感谢
哦我明白了,你使用标签来跟踪活动堆栈呢?这段代码是否进入FragmentA的onCreate? – reidisaki
不,它进入包含两个碎片的Activity的onCreate。基本上用这个代码,你恢复你在另一个方向做的碎片交易,并重新按照新的方向做 – Addev
啊,我明白了!谢谢 – reidisaki