Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加平板电脑支持:Master/Detail(Android)的片段和活动_Java_Android_Android Fragments - Fatal编程技术网

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以正确响应方向变化
我认为第二种选择听起来更好,但是,这样做正确吗


谢谢

如果你需要我的建议,我会说这取决于太多的因素。我认为你应该坚持你认为可以控制的。这也取决于应用程序的屏幕流有多复杂

对我来说,如果你没有那么多的碎片需要管理,那么将其保存在一个活动中是一个好主意。这种方法的一个优点是,您不需要摆弄两种不同活动的生命周期

不管怎么说,找到实现复杂度在某种程度上是一个指标,表明您正在规划的内容在未来是无法管理的


希望有帮助

我不明白你为什么要用这么复杂的方式做这件事。在平板电脑上有一个活动,在手机上有两个活动。让第一个活动实现一个侦听器,该侦听器将在单击列表片段的项时触发。活动知道它是在单窗格模式还是在双窗格模式下,因此在选定的回调方法中,如果是单窗格模式,则让它启动新活动,如果是平板电脑,则让它替换片段

您还可以在创建新项目时使用主/明细模板看到这一点