5

我无法保存有关方向更改的视图。所以这就是我的情况。我有一个扩展 Horizo​​ntalScrollView 的类,它在它的构造函数中创建一个 LinearLayout 和一个按钮。单击按钮时,会将更多按钮添加到 LinearLayout。当活动开始时,我将操作栏设置为这个自定义视图,一切正常,从线性布局中添加和删除按钮。但是,这就是问题开始的地方。如果切换方向,onCreate 将重新启动,因此我的自定义视图的新实例被创建并设置为操作栏。因此,当我切换方向时,我的自定义视图会返回到开头。

如何在整个方向更改期间保持视图的层次结构?

4

2 回答 2

1

当方向改变时,活动被破坏并重新创建。

在您的清单中,将以下内容添加到您的活动中。

      <activity android:name=".MyActivity"
      android:configChanges="orientation|keyboardHidden|screenSize"
      android:label="@string/app_name">
      //Beginning with Android 3.2 (API level 13), the "screen size" also changes when the device switches between portrait and landscape orientation.
      //add screenSize for api 13 and above.   

现在,当这些配置之一发生更改时,MyActivity 不会重新启动。相反,MyActivity 收到对 onConfigurationChanged() 的调用。此方法传递一个配置对象,该对象指定新的设备配置。

http://developer.android.com/guide/topics/resources/runtime-changes.html

于 2013-04-07T04:11:12.800 回答
-1

获取这么多信息的最佳方法是将 android:configChanges="orientation" 添加到清单中的活动中,它会阻止 Android 假定您想要的销毁和重新启动功能。老实说,我建议将其添加到没有横向和纵向模式不同布局文件的任何活动中。

于 2013-04-07T04:09:18.757 回答