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á hiệu 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.
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
của tệp kê khai ứng dụng và thêm một khung hiển thị vào hệ phân cấp khung hiển thị của hoạt động để ứng dụng có thể theo dõi 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 khung hiển thị
Khai báo một khung hiển thị mới và thêm mã trình xử lý vào bên trong phương thức onConfigurationChanged()
của khung hiển thị:
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 có chứa hướng dẫn này
Hướng dẫn này là một phần của các 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:
