java - 添加平板电脑支持 : Fragments and Activities for Master/Detail (Android)

标签 java android android-fragments

我正在实现类似于 Fragments (Android Developers) 中描述的 fragment 层次结构。 enter image description here

此外,在纵向平板电脑中,应用程序的行为应与第二种情况相同。我的问题是处理从一个方向到另一个方向的事务。

我考虑的第一个想法是:

  • 从横向到纵向:当 Activity A 变为纵向时:将 fragment B 移至 View 中。启动 Activity B,让结果传递适当的值以恢复原始 fragment B 状态
  • 从纵向到横向:当 Activity B 变为纵向时。完成(结果中包含 fragment 2 状态)。具有结果的 Activity A 恢复 fragment B 并将其添加到其布局中。

但是这个解决方案非常复杂,我认为这显然不是一个好主意。我考虑过的替代解决方案是仅拥有一个 Activity 。该 Activity 布局是:

<FrameLayout>
    <LinearLayout>
       <Fragment A>
       <Fragment B>
    <Slot>

对于小型设备:

  • 应用程序会删除 fragment B,并在选择某个项目时将 fragment 添加到后台堆栈中的“插槽”

对于平板电脑:

  • 使用fragmentTransactions,使用backstack将 fragment B从其位置移动到“Slot”,以正确应对方向变化

我认为第二个选项听起来更好,但是这是正确的方法吗?

谢谢

最佳答案

如果你想要我的建议,我想说这取决于太多因素。我认为你应该坚持你认为足够容易管理的事情。这还取决于您应用的屏幕流程的复杂程度。

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

无论如何,发现实现复杂性在某种程度上表明您将来无法管理您的计划。

希望有帮助!

关于java - 添加平板电脑支持 : Fragments and Activities for Master/Detail (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13431036/

相关文章:

java - tinylog 正在格式化普通数字,例如金钱

android - 与混合应用程序的改造集成

android - CardView 都相互堆叠

android - 如何在Kotlin中实现View Pager同一个Fragment?

java - 如何将 Spring boot 与 servlet 3.0 容器集成并使其在 Websphere 8.5.5 服务器上运行?

java - JSF Lifecycle 使用 PrimeFaces ajax 执行了 2 次

android - 如何在 Android 谷歌地图中显示附近的地方,如自动取款机、医院?

java - 用于MainActivity和广播接收器之间通信的接口(interface)

Android - 如何从 xml 获取 View 并在 Fragment 中使用它?

java - 将 javafx 窗口保持在屏幕边界内