如何轻松处理屏幕方向变化

3
我正在开发一款Android应用程序,该程序完全使用编程方式添加视图。当用户旋转屏幕时,我只想再次显示填充的值。
是否有一种简单的方法让Android自动完成这个过程?
由于我的应用程序是完全动态的,所以它没有预定的布局,这使得它更加困难。
那么,我如何轻松保存屏幕状态呢?

1
为什么不修正方向? - pixelscreen
1
通常,像EditBoxes等小部件在方向更改时会保存它们的状态,包括值。 - Alexander Kulyakhtin
2个回答

6
每当方向改变时,安卓会创建新的视图并销毁旧的视图。您可以在方向改变时保存数据,并在创建新视图时重新初始化。
使用onConfigurationChanged方法来检测方向变化。
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
  }

不要忘记编辑你的AndroidManifest.XML中适当的元素,像这样包含android:configChanges

<activity android:name=".MyActivity"
          android:configChanges="orientation|keyboardHidden"
          android:label="@string/app_name">

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接