android – 碎片和旋转

在Gmail应用中,从左侧片段中选择一封电子邮件会正常打开右侧片段中的电子邮件.将设备旋转为纵向仅显示所选的电子邮件,如您所料,并将设备旋转回横向显示电子邮件列表和选定的电子邮件.这是所有预期和完美的工作.

但是,在API演示和基于Fragments示例的应用程序中,在从左侧片段列表中选择项目并将其显示在右侧片段后,将设备旋转到纵向显示列表片段而不是所选项目详情片段,如Gmail.返回横向将在右侧片段中再次显示所选项目.

API演示示例代码:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/FragmentLayout.html

知道如何重新创建Gmail应用程序中显示的内容吗?

解决方法:

我怀疑如果你看一下纵向模式的/res/layout/fragment_layout.xml(它被设置为Activity的contentView),你会在< fragment>中找到它.标记对列表片段的引用而不是细节片段.

如果将其切换为引用细节片段而不是列表片段,则您将处于正确的轨道上.

您可能仍然需要在代码中进行挖掘,以使逻辑按照您希望的方式完全按照我刚才提到的布局开关进行操作,但这是开始的地方.

你会遇到另一个问题(我还没有考虑过这个问题,虽然我想把它添加到我的答案中,因为我必须运行)这就是当你第一次启动景观活动时你我可能想要两个并排的片段;这将对应于纵向列表片段.选择列表中的项目需要将预期的肖像行为切换为显示另一个片段…所以可能保留一个布尔mIsItemSelected并在您的Activity构造函数中使用它来决定您希望显示哪个纵向布局/片段对(列表)或细节).

上一篇:Android:防止屏幕方向更改但仍会收到有关它的通知


下一篇:android – configChanges =“orientation”不会触发Galaxy Nexus