android 设备转屏不会调用onConfigurationChanged方法
解决设备转屏不会调用onConfigurationChanged方法的问题
·
在manifest中Activity标签设置了属性android:configChanges="xxx"后,当手机横竖屏切换等情况的时候不会重新Create了,而是会调用onConfigurationChanged
configChanges一般添加orientation|screenSize|keyboardHidden三个属性既可以满足大部分机型
但是经过测试添加这三个属性在某些设备上不会响应onConfigurationChanged方法,如联想小新平板,经过测试在configChanges添加screenLayout属性就可以响应onConfigurationChanged方法
另外该设备在activity标签上设置screenOrientation属性为portrait无法限制转屏(设备会强行转屏),并且转屏会重新走一遍activity的生命周期并不会响应onConfigurationChanged方法,需要在configChanges添加smallestScreenSize属性解决该问题
完整设置如下:android:configChanges="orientation|screenSize|keyboardHidden|screenLayout"
如果screenOrientation 设置为portrait限制为竖屏模式则需要加上android:configChanges="smallestScreenSize
"
如下为configChanges属性,后面如果有其他问题再按照下列属性更新
mcc
: 设备的MCC(Mobile Country Code)更改。mnc
: 设备的MNC(Mobile Network Code)更改。locale
: 设备的Locale(语言环境)更改。touchscreen
: 设备的触摸屏幕类型或模式更改。keyboard
: 设备的键盘类型或状态更改。keyboardHidden
: 设备的键盘是否隐藏更改。navigation
: 设备的导航方式(如导航按钮、轨迹球)更改。orientation
: 设备的屏幕方向更改。screenLayout
: 设备的屏幕布局特征更改(如大小、密度)。uiMode
: 设备的UI模式更改(如普通、车载、电视、笔记本电脑)。screenSize
: 设备的屏幕尺寸更改。smallestScreenSize
: 设备的最小屏幕尺寸更改。layoutDirection
: 设备的布局方向更改。fontScale
: 设备的字体缩放因子更改
更多推荐
已为社区贡献1条内容
所有评论(0)