如何轻松处理方向变化

时间:2012-07-18 09:47:12

标签: android orientation-changes

我正在开发一个Android应用程序,它可以添加每个视图程序。 当用户转动屏幕时,我只想要填写的值再次显示 是否有一种简单的方法让Android自动执行此操作?

我的应用程序是完全动态的,因此它没有预定的布局,这使得它变得更加困难。

那么,我怎样才能轻松保存屏幕状态?

2 个答案:

答案 0 :(得分:6)

每次定向改变,android创建新视图并销毁旧视图。您可以在方向更改时保存数据,并在创建新视图时重新初始化

使用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">

答案 1 :(得分:0)

有关海因(Hein)正确答案的详细说明,请参见我以前的文章:

https://stackoverflow.com/a/57239493/5696328