-1

我在 android 中为纵向和横向视图创建了布局和布局域。我希望不要刷新我如何从布局切换到 layout-land 的活动。正如我已经放入android:configChanges="keyboardHidden|orientation|screenSize"防止从布局切换到布局土地的清单。

我想:

  1. 更改方向时活动不刷新
  2. 在更改方向时将 XML 从布局切换到布局域,反之亦然
4

2 回答 2

0

简而言之:你无法做到这一点(只有一些技巧)。看一下Android Activity Lifecycle:android在方向改变时销毁activity。因此,如果不重新实例化活动,您就无法从纵向切换到陆地(然后返回)。

于 2013-11-01T11:54:14.297 回答
0

您需要使用onSaveInstanceState()来保存应用程序配置时需要绑定的数据。将发生变化,您可以在onRestoreInstanceState () 方法中重新绑定已保存的数据。这里给出的链接会帮助你。

http://www.devahead.com/blog/2012/01/preserving-the-state-of-an-android-webview-on-screen-orientation-change/

注意:您需要android:configChanges="keyboardHidden|orientation|screenSize"从要调用 onConfigurationChanged() 的清单文件中删除

您可以在 onSaveInstanceState() 方法中将数据存储在 Bundle 中,例如

protected void onSaveInstanceState(Bundle icicle) {
  super.onSaveInstanceState(icicle);
  icicle.putLong("param", value);
}

你可以在

public void onCreate(Bundle icicle) {
  if (icicle != null){
    value = icicle.getLong("param");
  }
}
于 2013-11-01T11:53:19.223 回答