จัดการการเปลี่ยนแปลงการกำหนดค่าแป้นพิมพ์แบบถอดได้

ระบบ Android จะทริกเกอร์การเปลี่ยนแปลงการกำหนดค่าทุกครั้งที่เชื่อมต่อหรือถอดแป้นพิมพ์ออกจากอุปกรณ์ แอปของคุณต้องจัดการการเปลี่ยนแปลงการกำหนดค่าแป้นพิมพ์ได้อย่างมีประสิทธิภาพเพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ราบรื่นและเพิ่มประสิทธิภาพของผู้ใช้ให้ได้สูงสุดในอุปกรณ์หน้าจอขนาดใหญ่ที่มีแป้นพิมพ์แบบถอดได้

ป้องกันการสร้างกิจกรรมใหม่เมื่อเปลี่ยนแป้นพิมพ์

หากไม่ต้องการให้ระบบสร้างกิจกรรมขึ้นมาใหม่เมื่อเชื่อมต่อหรือถอดแป้นพิมพ์แบบถอดได้ ให้เพิ่มค่าที่เกี่ยวข้องกับแป้นพิมพ์ลงในแอตทริบิวต์ 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 ที่กว้างขึ้น ดังนี้

เปิดใช้แอปเพื่อรองรับประสบการณ์การใช้งานที่เพิ่มประสิทธิภาพในแท็บเล็ต อุปกรณ์แบบพับได้ และอุปกรณ์ ChromeOS

หากมีคำถามหรือความคิดเห็น

ไปที่หน้าคำถามที่พบบ่อยเพื่อดูคู่มือฉบับย่อหรือติดต่อเราเพื่อบอกความคิดเห็นของคุณ