我正在实现类似于Fragments (Android Developers)中描述的片段层次结构。
此外,在纵向平板电脑中,应用程序的行为应与第二种情况相同。我的问题是处理从一个方向到另一个方向的交易。
我考虑的第一个想法是:
- 从横向到纵向:当活动A转到纵向时:将片段B移到视图中。启动活动 B 以获取传递适当值以恢复原始片段 B 状态的结果
- 从纵向到横向:当活动 B 转到纵向时。完成(结果中的片段 2 状态)。带有结果的活动 A 恢复片段 B 并将其添加到其布局中。
但是这个解决方案非常复杂,我认为这可能不是一个好主意。我考虑过的替代解决方案是只有一个活动。该活动布局是:
<FrameLayout>
<LinearLayout>
<Fragment A>
<Fragment B>
<Slot>
对于小型设备:
- 应用程序删除片段 B 并在选择项目时将片段添加到后台堆栈中的“插槽”
对于平板电脑:
- 使用 fragmentTransactions 将片段 B 从它的位置移动到“插槽”,使用 backstack 以正确地适应方向变化
我认为第二个选项听起来更好但是,这样做是正确的方法吗?
谢谢