在Android开发中,android:configChanges属性用于声明Activity将自行处理的配置变更类型。您提到的配置组合具体含义如下:

android:configChanges="orientation|screenSize|keyboardHidden|screenLayout|uiMode"

各配置项解析:

  1. orientation
    处理屏幕方向改变(竖屏/横屏切换)

  2. screenSize
    处理屏幕尺寸变化(适配API 13+的分屏模式/多窗口模式)

  3. keyboardHidden
    处理物理键盘的可用性变化(如外接键盘插拔)

  4. screenLayout
    处理屏幕布局变化(如不同显示模式切换)

  5. uiMode
    处理UI模式变化(夜间模式/车载模式等)

组合效果:当这些配置变更发生时,系统不会重建Activity,而是触发onConfigurationChanged()回调方法,需要开发者在Activity中手动处理布局调整。

这个配置常见于需要保持界面连续性的场景(如录音/录像过程中旋转屏幕),但要注意必须同时在Activity中实现onConfigurationChanged()来处理布局适配,否则可能导致UI显示异常。

更多推荐