目前,我在平板电脑上有横向和纵向的双窗格布局。
与设置类似,我有一个活动将片段加载到左侧选择窗格中,然后在显示的任何右侧片段中所做的选择都会导致更多片段显示到右侧窗格中,并一直添加到后台堆栈。
现在我可以看到,对于某些平板电脑来说,使用一个用于纵向的窗格和一个用于横向的双窗格是有意义的。但是,我想要以下行为:
A)如果在风景中是深度的片段堆栈N说是在右窗格中,然后在方向更改为纵向时我仍然想要片段N要显示和要维护的堆栈
B) 然后从片段导航回来N在纵向模式下,我最终想回到选择屏幕。
现在我不知道如何实现这一目标,到目前为止我提出的想法是:
1)两个方向都有双窗格,但在方向更改时隐藏左侧窗格,然后在清除堆栈时需要重新显示并隐藏右侧窗格
2) 将堆栈重建到新容器中,在切换到纵向时在开头添加选择片段
如果它们有效的话,这两种方法似乎都不令我完全满意。只是想知道更好/推荐的方法是什么。
提前致谢。彼得.
Edit 1
应该提到的是,我知道您可以有不同的纵向和横向布局,并且正在完成一个具有纵向和横向双窗格布局的大型项目,因此方向更改的生命周期是可以的。我也看过FragmentLayoutSupport
示例,但在方向更改为纵向时,不会在右窗格中保留数据,它会再次显示列表。
PJL,所以您在这里处于正确的轨道上,您可以检查您的方向,然后显示或隐藏特定片段,或者您可以有两种不同的布局,一种用于纵向,一种用于横向,然后在 Activity 的 onCreate 函数中您可以检查是否可以通过 findViewById 获得第二个 Fragment,然后实例化它。您正在寻找的视图只有一个具有已知 ID 的 FrameLayout。
因此,请确保您了解方向改变期间会发生什么在此输入链接描述一个非常好的片段示例是本书示例的一部分忙碌的程序员高级 Android 开发指南这本书是 40 美元/年的说明的一部分。不过,示例代码是免费的。查看片段示例它可能有助于解决您的问题。当然你也可以看一下这个例子FragmentLayoutSupport.java在developer.android.com上
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)