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

ระบบ 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

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

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