Java 添加平板电脑支持:Master/Detail(Android)的片段和活动
我正在实现一个类似于中描述的片段层次结构 在纵向平板电脑中,应用程序的行为应与第二种情况相同。我的问题是如何处理从一个方向到另一个方向的事务 我考虑的第一个想法是:Java 添加平板电脑支持:Master/Detail(Android)的片段和活动,java,android,android-fragments,Java,Android,Android Fragments,我正在实现一个类似于中描述的片段层次结构 在纵向平板电脑中,应用程序的行为应与第二种情况相同。我的问题是如何处理从一个方向到另一个方向的事务 我考虑的第一个想法是: 从横向到纵向:当活动A转到纵向时:将片段B移到视图中。启动活动B以获得传递propper值以恢复原始片段B状态的结果 从纵向到横向:当活动B转到纵向时。完成(结果中具有片段2状态)。带有结果的活动A将恢复片段B并将其添加到布局中 但这个解决方案相当复杂,我认为这不是一个好主意。我考虑过的另一种解决方案是只进行一项活动。该活动布局
- 从横向到纵向:当活动A转到纵向时:将片段B移到视图中。启动活动B以获得传递propper值以恢复原始片段B状态的结果
- 从纵向到横向:当活动B转到纵向时。完成(结果中具有片段2状态)。带有结果的活动A将恢复片段B并将其添加到布局中
<FrameLayout>
<LinearLayout>
<Fragment A>
<Fragment B>
<Slot>
对于小型设备:
- 应用程序删除片段B,当选择一个项目时,将片段添加到backbackback中的“Slot”
- 使用fragmentTransactions,碎片B从其位置移动到“插槽”中,使用Backbackback以正确响应方向变化
谢谢如果你需要我的建议,我会说这取决于太多的因素。我认为你应该坚持你认为可以控制的。这也取决于应用程序的屏幕流有多复杂 对我来说,如果你没有那么多的碎片需要管理,那么将其保存在一个活动中是一个好主意。这种方法的一个优点是,您不需要摆弄两种不同活动的生命周期 不管怎么说,找到实现复杂度在某种程度上是一个指标,表明您正在规划的内容在未来是无法管理的
希望有帮助 我不明白你为什么要用这么复杂的方式做这件事。在平板电脑上有一个活动,在手机上有两个活动。让第一个活动实现一个侦听器,该侦听器将在单击列表片段的项时触发。活动知道它是在单窗格模式还是在双窗格模式下,因此在选定的回调方法中,如果是单窗格模式,则让它启动新活动,如果是平板电脑,则让它替换片段 您还可以在创建新项目时使用主/明细模板看到这一点