微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 在方向更改维护片段堆栈时从双窗格切换到单窗格

目前,我在平板电脑上有横向和纵向的双窗格布局.

与设置类似,我有一个活动,它将一个片段加载到左选择窗格中,然后在显示的任何正确片段中做出的选择导致在右窗格中显示更多片段,一直添加到backstack.

现在我可以看到,对于某些平板电脑来说,有一个用于纵向的单个窗格和用于横向的双窗格是有意义的.但是,我想要以下行为:

A)如果在横向中,深度为N的片段堆栈在右窗格中然后在朝向纵向的方向上改变,我仍然希望显示片段N并且要保持堆栈

B)然后在纵向模式下从片段N导航回来我最终想要回到选择屏幕.

现在我无法弄清楚如何实现这一点,到目前为止我想出的想法是:

1)对于两个方向都有双窗格但在方向更改时隐藏左窗格,然后需要在清除堆栈时重新显示并隐藏右窗格

2)将堆栈重建到新的容器中,在开关的开头添加选择片段到纵向

如果它们起作用,对我来说似乎完全令人满意.只是想知道更好/推荐的方法是什么.

提前致谢.彼得.

编辑1

应该提到的是,我了解到你可以拥有不同的纵向和横向布局,并且正在完成一个大型项目,其中包含纵向和横向的双窗格布局,因此在方向更改的生命周期中可以正常使用.我还查看了FragmentLayoutSupport示例,但是没有将方向更改为右侧窗格中的数据更改为纵向,它再次显示列表.

解决方法

PJL,所以你在这里是正确的轨道,要么你可以检查你的方向然后显示或隐藏特定的片段,或者你可以有两个不同的布局,一个用于肖像,一个用于风景,在你的活动的onCreate功能,你可以检查如果第二个片段可以通过findViewById获得然后实例化它.您正在寻找的视图只有一个已知Id的FrameLayout.
因此,请确保您了解在方向更改 enter link description here期间发生的情况
一个非常好的碎片示例是本书 The Busy Coder’s Guide To Advanced Android Development的样本的一部分,该书是40美元/年描述的一部分.示例代码是免费的.查看 Fragments Example它可能有助于解决您的问题.当然,您也可以查看developer.android.com上的示例 FragmentLayoutSupport.java

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐