android:configChanged的用法

本文介绍如何通过配置Activity的configChanges属性来避免因设备配置变化(如屏幕旋转、语言切换等)导致的Activity重建。适用于不同Android API级别的适配策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道,在activity中配置此配置可以避免所配置的activity在所配置的属性发生改变的时候,不重建。常用的一些用法如下:

一、常用属性的说明: 、
1、orientation: 屏幕方向发生了改变,一般指的是旋转手机;
2、keyBoardHidder:可访问性发生了改变,如用户调出了键盘;
3、fontScale:系统的字体缩放比例发生了改变,选择了别的字号;
4、screenSize:屏幕尺寸发生了改变,比如旋转屏幕,屏幕的宽高会发生改变(api13之后加入);
5、layoutDirection:布局方向发生改变(api17之后加入)。当改变语言设置后,该属性也会成newConfig中的一个mask位。所以ActivityManagerService(实际在ActivityStack)在决定是否重启Activity的时候总是判断为重启;
6、locale:设备的本地位置发生变化,一般是切换系统语言;

二、在屏幕发生旋转的时候不重建activity:
在api13之前只需要配置orientation即可,但是13以后,需要加上screenSize;
android:configChanges="orientation|screenSize" (API13之后)
android:configChanges="orientation"(API14之前)

三、切换语言时不重建activity:
在API17之前只需要配置locale即可,API17之后需要加上layoutDirection属性              android:configChanges="layoutDirection|locale"(高于API17)
android:configChanges="locale"(低于API17)

四、切换字体大小不重建activity:  
android:configChanges="fontScale"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值