每当键盘连接到设备或从设备断开连接时,Android 系统都会触发配置变更。为了在配备可拆卸键盘的大屏设备上提供顺畅的用户体验并最大限度地提高用户工作效率,您的应用需要有效地管理键盘配置更改。
结果
您的应用在连接或断开外接键盘时会做出响应,而无需重新创建正在运行的 activity。
版本兼容性
将项目的 minSDK 设置为 API 级别 8,以实现此功能(请参阅 View#onConfigurationChanged())。
依赖项
无。
防止在键盘更改时重新创建 activity
为防止在连接或断开可拆卸键盘时重新创建 activity,请将与键盘相关的值添加到应用清单的 configChanges 属性中,并向 activity 的视图层次结构添加一个视图,以便应用可以监听配置更改。
1. 声明 configChanges 属性
通过将 keyboard|keyboardHidden 值添加到已管理的配置更改列表中,更新应用清单中的 <activity> 元素:
<activity
...
android:configChanges="...|keyboard|keyboardHidden">
2. 向视图层次结构添加一个空视图
声明一个新视图,并在该视图的 onConfigurationChanged() 方法内添加处理程序代码:
Kotlin
val v = object : View(this) {
override fun onConfigurationChanged(newConfig: Configuration?) {
super.onConfigurationChanged(newConfig)
// Handler code here.
}
}
Java
View v = new View(this) {
@Override
protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Handler code here.
}
};
要点
android:configChanges:应用清单的<activity>元素的属性。告知系统应用管理的配置更改。View#onConfigurationChanged():对新应用配置的传播做出反应的方法。
包含本指南的集合
本指南属于以下精选的快速指南合集,这些合集涵盖了更广泛的 Android 开发目标:
针对大屏设备进行优化
让您的应用能够在平板电脑、可折叠设备和 ChromeOS 设备上提供优化的用户体验。
有问题或想提供反馈
前往我们的常见问题解答页面,了解快速指南,或者联系我们并告知您的想法。