1

根据此处的 Google 示例,我开发了一个基于片段的应用程序。

我的主要活动包含一个标题列表片段,如果它是在横向模式下创建的,则包含一个详细信息片段。如果应用程序以纵向模式启动,则主活动仅包含列表片段,如果单击列表项,则启动一个显示详细信息片段的新活动。

如果我保持纵向或横向模式,一切正常。但是一旦我改变方向,就会出现多个问题。

第一个问题:从纵向模式开始,然后切换到横向模式,活动被两次添加到活动堆栈中,我必须按两次后退按钮才能关闭我的应用程序。我无法想象这是谷歌希望它工作的方式,那么我该如何避免这种情况呢?

第二个问题:从横向模式更改为纵向模式时,会显示列表,而不是当前所选项目的详细信息片段。因此,我的 detailsfragment 中的所有用户输入都丢失了。这很烦人,我不知道如何处理。我是否必须在每项活动中以编程方式关注方向变化?

第三个问题:当我在横向模式下切换n 个细节时,一旦我切换到纵向模式,我必须按n次后退按钮来关闭我的添加,因为片段在后堆栈中(尽管它们不可见更多)。在方向改变时我必须自己清理后堆吗?

4

1 回答 1

-1

活动是一回事。也就是说,当您更改方向时,除非您执行以下操作,否则 Activity 会重新启动:

-首先,将其添加到您的清单中(在活动标签内),这样您就可以告诉应用程序在您更改方向时要做什么:

android:configChanges="orientation"

-其次,执行以下方法以防万一方向发生变化。如果没有,用户不会丢失其数据。

onOrientationChanged (int orientation)
于 2012-09-30T19:28:41.097 回答