키보드가 기기에 연결되거나 기기에서 분리될 때마다 Android 시스템은 구성 변경을 트리거합니다. 분리형 키보드가 있는 대형 화면 기기에서 원활한 사용자 환경을 제공하고 사용자 생산성을 극대화하려면 앱이 키보드 구성 변경을 효과적으로 관리해야 합니다.
결과
앱이 실행 중인 활동을 다시 생성하지 않고도 외부 키보드가 연결되거나 분리되는 데 응답합니다.
버전 호환성
이 구현을 위해 프로젝트의 minSDK를 API 수준 8로 설정합니다 (View#onConfigurationChanged() 참고).
종속 항목
없음
키보드 변경 시 활동 재생성 방지
분리형 키보드가 연결되거나 분리될 때 활동이 다시 생성되지 않도록 하려면 앱 매니페스트의
configChanges 속성에 키보드 관련 값을 추가하고 활동의 뷰 계층 구조에 뷰를 추가하여 앱이 구성 변경을 수신 대기할 수 있도록 합니다.
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.
}
}
자바
View v = new View(this) {
@Override
protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Handler code here.
}
};
핵심 사항
android:configChanges: 앱 매니페스트의<activity>요소 속성입니다. 앱이 관리하는 구성 변경에 관해 시스템에 알립니다.View#onConfigurationChanged(): 새 앱 구성의 전파에 반응하는 메서드입니다.
이 가이드가 포함된 컬렉션
이 가이드는 광범위한 Android 개발 목표를 다루는 선별된 빠른 가이드 컬렉션의 일부입니다.
큰 화면에 최적화
앱이 태블릿, 폴더블, ChromeOS 기기에서 최적화된 사용자 환경을 지원하도록 합니다.
궁금한 점이나 의견이 있으신가요?
자주 묻는 질문 페이지로 이동하여 빠른 가이드에 관해 알아보거나 Google에 문의하여 의견을 알려주세요.