ระบบ Android จะทริกเกอร์การเปลี่ยนแปลงการกำหนดค่าทุกครั้งที่มีการแนบหรือถอดแป้นพิมพ์ออกจากอุปกรณ์ แอปของคุณต้องจัดการการเปลี่ยนแปลงการกำหนดค่าแป้นพิมพ์อย่างมีประสิทธิภาพเพื่อให้ผู้ใช้ได้รับประสบการณ์ของผู้ใช้ที่ราบรื่นและเพิ่มประสิทธิภาพการทำงานของผู้ใช้ในอุปกรณ์หน้าจอขนาดใหญ่ที่มีแป้นพิมพ์แบบถอดได้
ผลลัพธ์
แอปของคุณจะตอบสนองต่อการแนบหรือถอดแป้นพิมพ์ภายนอกโดยไม่ต้องสร้างกิจกรรมที่กำลังทำงานขึ้นมาใหม่
ความเข้ากันได้กับเวอร์ชัน
ตั้งค่า minSDK ของโปรเจ็กต์เป็น ระดับ API 8 สำหรับการติดตั้งใช้งานนี้ (ดู
View#onConfigurationChanged())
ความสัมพันธ์
ไม่มี
ป้องกันไม่ให้สร้างกิจกรรมขึ้นมาใหม่เมื่อมีการเปลี่ยนแปลงแป้นพิมพ์
หากต้องการป้องกันไม่ให้สร้างกิจกรรมขึ้นมาใหม่เมื่อมีการแนบหรือถอดแป้นพิมพ์แบบถอดได้ ให้เพิ่มค่าที่เกี่ยวข้องกับแป้นพิมพ์ลงในแอตทริบิวต์ configChanges ของไฟล์ Manifest ของแอป และเพิ่มมุมมองลงในลำดับชั้นการแสดงผลของกิจกรรมเพื่อให้แอปรับฟังการเปลี่ยนแปลงการกำหนดค่าได้
1. ประกาศแอตทริบิวต์ configChanges
อัปเดตองค์ประกอบ <activity> ในไฟล์ Manifest ของแอปโดยเพิ่มค่า
keyboard|keyboardHidden ลงในรายการการเปลี่ยนแปลงการกำหนดค่าที่มีการจัดการอยู่แล้ว ดังนี้
<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>ในไฟล์ Manifest ของแอป แจ้งให้ระบบทราบเกี่ยวกับการเปลี่ยนแปลงการกำหนดค่าที่แอปจัดการView#onConfigurationChanged(): เมธอดที่ตอบสนองต่อการเผยแพร่การกำหนดค่าแอปใหม่
คอลเล็กชันที่มีคู่มือนี้
คู่มือนี้เป็นส่วนหนึ่งของคอลเล็กชันคู่มือฉบับย่อที่คัดสรรมาแล้ว ซึ่งครอบคลุมเป้าหมายการพัฒนา Android ที่กว้างขึ้น