大家知道Android Activity在横竖屏切换的时候会重建以适应新的屏幕和环境
这是必然的
但是有时候容易忽视此引起的问题
如 在调用三方识别SDK的时候,他是横屏识别,你原Activity是竖屏,你若不处理,原Activity已有的数据就会被重建,原来的数据就没了
这样会引起使用上的不方便,数据都没了,咱们得让数据还在啊,页面不能重绘,也不能重载
解决方法
configChanges
就是如上的属性
这个属性就是设置某页面在横竖屏切换时不会让系统重建的关键
咋写呢?如下
android:configChanges="screenSize|orientation"
那么我这里是用了screenSize和orientation两个属性,这样
就大功告成了,妈妈再也不会担心我的横竖屏切换会出问题了
但是,除了这些属性,还有其他是什么意思呢
其他属性说明
mmc:这里的意思是SIM卡的标识IMSI中的mmc发生了改变,这个mmc的用途是区分不同的国家的3位数号码,比如中国的是460,玩过水货的估计有了解这个东西的。
mnc:IMSI中的运营商代码改变,就是用来区分当前SIM卡的网络运营商的,中国移动是00,联通是01,电信是03。
locale:本地位置改变触发,恩,这个貌似跟语言切换有关,没用过,不是跟了解。
keyboard、keyboardHidden:这两个一起说一下,就是跟键盘有关的操作,前一个是键盘类型变化,如插了个键盘在设备上,后一个指的是键盘的可访问性发生变化。
teachScreen:触摸屏变化。
navigation:系统导航方式变化。
screenLayout:屏幕布局发生了改变。
layloutDirection:布局的方向发生变化,注意,是布局的方向,不是屏幕的,比较难理解的一个概念,是API17之后出现的
orientation:屏幕方向改变,具体就是屏幕的横竖屏切换。
uiMode:用户界面改变,这个是api18后出现的,比如切换夜间模式等场景会出现这个。
fontScale:系统字体大小改变。
screenSize:设备的屏幕的尺寸信息发生了改变,旋转屏幕时也会触发这个,但是这个值是API13之后才有的,因此13之前的设备没有这个。
smallestScreenSize:设备的物理屏幕发生改变,同样是API13之后的东西,指的是设备的物理屏幕发生变化,比如外接显示器之类的。
一般就是orientation ,加上screenSize也可以