Hệ thống Android sẽ kích hoạt một thay đổi về cấu hình mỗi khi bàn phím được gắn vào hoặc tháo ra khỏi thiết bị. Để mang lại trải nghiệm liền mạch cho người dùng và tối đa hoá năng suất của người dùng trên các thiết bị có màn hình lớn và bàn phím có thể tháo rời, ứng dụng của bạn cần quản lý hiệu quả các thay đổi về cấu hình bàn phím.
Kết quả
Ứng dụng của bạn phản hồi khi bàn phím bên ngoài được đính kèm hoặc tháo rời mà không cần tạo lại hoạt động đang chạy.
Khả năng tương thích giữa các phiên bản
Đặt minSDK của dự án thành cấp độ API 8 cho quá trình triển khai này (xem View#onConfigurationChanged()).
Phần phụ thuộc
Không có.
Ngăn việc tạo lại hoạt động khi bàn phím thay đổi
Để ngăn Hoạt động của bạn được tạo lại khi bàn phím có thể tháo rời được gắn hoặc tháo rời, hãy thêm các giá trị liên quan đến bàn phím vào thuộc tính configChanges trong tệp kê khai ứng dụng và thêm một khung hiển thị vào hệ phân cấp view của Hoạt động để ứng dụng có thể lắng nghe các thay đổi về cấu hình.
1. Khai báo thuộc tính configChanges
Cập nhật phần tử <activity> trong tệp kê khai ứng dụng bằng cách thêm các giá trị keyboard|keyboardHidden vào danh sách các thay đổi về cấu hình đã được quản lý:
<activity
...
android:configChanges="...|keyboard|keyboardHidden">
2. Thêm một khung hiển thị trống vào hệ phân cấp view
Khai báo một chế độ xem mới và thêm mã trình xử lý vào bên trong phương thức onConfigurationChanged() của chế độ xem:
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.
}
};
Điểm chính
android:configChanges: Thuộc tính của phần tử<activity>trong tệp kê khai ứng dụng. Thông báo cho hệ thống về những thay đổi về cấu hình mà ứng dụng quản lý.View#onConfigurationChanged(): Phương thức phản ứng với việc truyền một cấu hình ứng dụng mới.
Bộ sưu tập chứa hướng dẫn này
Hướng dẫn này là một phần của bộ sưu tập Hướng dẫn nhanh được tuyển chọn, bao gồm các mục tiêu phát triển Android rộng hơn: