Android:片段导致方向更改出现问题

时间:2012-09-30 16:57:37

标签: android android-fragments android-orientation

根据Google示例here,我根据片段开发了一款应用。

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

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

第一个问题:以纵向模式开始,然后更改为横向模式,活动将添加到活动堆栈两次,我必须按两次后退按钮才能关闭我的应用。我不能想象这是Google希望这种方式发挥作用的方式,所以我该如何避免这种情况呢?

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

第3个问题:当我在横向模式下切换 n 细节时,只要我更改为纵向模式,我就必须按后退按钮 n 次关闭我的添加,因为片段在后面的堆栈中(尽管它们不再可见)。我是否需要在方向改变时自行清理后挡板?

1 个答案:

答案 0 :(得分:-1)

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

- 首先,在清单中(在活动代码中)添加此内容,这样您就可以告诉应用程序在您更改方向时该怎么做:

android:configChanges="orientation"

- 其次,如果您需要更改方向,请执行以下方法。如果没有,用户之前不会丢失其数据。

onOrientationChanged (int orientation)