横屏和竖屏切换界面不刷新
16lz
2021-12-04
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期
设置Activity的android:configChanges时,切屏不会重新调用声明周期,只会执行onConfigurationChanged方法。
在android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置。在activity加上android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.而只是调用onConfigurationChanged(Configuration newConfig).这样就可以在这个方法里调整显示方式.
public void onConfigurationChanged(Configuration newConfig) { try { super.onConfigurationChanged(newConfig); if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { Log.v("Himi", "onConfigurationChanged_ORIENTATION_LANDSCAPE"); } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { Log.v("Himi", "onConfigurationChanged_ORIENTATION_PORTRAIT"); } } catch (Exception ex) { } }
- <?xml version="1.0" encoding="utf-8"?>
-
"http://schemas.android.com/apk/res/android" - package="com.himi" android:versionCode="1" android:versionName="1.0">
- "@drawable/icon" android:label="@string/app_name">
- ".MainActivity" android:label="@string/app_name"
- android:configChanges="keyboardHidden|orientation">
-
- "android.intent.action.MAIN" />
-
"android.intent.category.LAUNCHER" /> -
"4" />
更多相关文章
- 关于那些Android中不常用的设置属性
- Android(安卓)Property System | Android属性系统
- TextView 属性
- Android(安卓)Activity生命周期管理
- Android系统服务-WindowManager
- andriod EditText的属性[转]
- android:imeOptions属性
- Android应用程序启动过程源代码分析
- TextView属性详解