手机切换横竖屏时,不重走生命周期
android:configChanges="orientation|keyboardHidden|screenSize"
设置手机一直保持竖屏状态,不重走生命周期
android:screenOrientation="portrait"
设置手机一直保持横屏状态,不重走生命周期
android:screenOrientation="landscape"
通过代码设置
部分手机,通过代码设置,不切换横竖屏,不重走生命周期
但是还有一部分手机,可能会切换1次横竖屏,重走生命周期,建议添加
android:configChanges="orientation|keyboardHidden|screenSize"
属性
/**
* 判断是否平板设备
* @param context
* @return true:平板,false:手机
*/
private boolean isTabletDevice(Context context) {
return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
//设置屏幕方向
private void setScreenOrientation(Context context){
if(!isTabletDevice(context)){
//手机,竖屏
MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}else{
//平板,横屏
MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}
推荐使用
两个一起设置
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|screenSize"
网友评论