ใน Android 8.0 เมนูการตั้งค่ามีคอมโพเนนต์และวิดเจ็ตหลายรายการที่ ครอบคลุมการใช้งานทั่วไป เราขอแนะนำให้ผู้ผลิตอุปกรณ์และนักพัฒนาแอปใช้ คอมโพเนนต์ทั่วไปเมื่อขยายแอปการตั้งค่า เพื่อให้ส่วนติดต่อผู้ใช้ใหม่ สอดคล้องกับ UI การตั้งค่าที่มีอยู่
สรุปการปรับปรุงมีดังนี้
- การเปลี่ยนแปลงลักษณะการทำงานของตัวคั่นในเฟรมเวิร์กค่ากำหนดของไลบรารีการสนับสนุน ตอนนี้ระบบจะวาดเส้นแบ่งระหว่างหมวดหมู่แล้ว
- เปลี่ยนธีม ActionBar ตอนนี้ ActionBar ใช้ธีมสีอ่อนที่มีข้อความสีเน้น
- เลย์เอาต์ค่ากำหนดใหม่ พื้นที่สำหรับไอคอนจะยังคงอยู่แม้ว่าค่ากำหนดจะไม่มีไอคอนก็ตาม
วิดเจ็ตใหม่
- วิดเจ็ตส่วนหัวสำหรับรายละเอียดแอป แสดงไอคอนแอป ป้ายกำกับแอป และ ข้อมูลอื่นๆ
- ปุ่มขยายในบางหน้า หน้าเว็บสามารถเริ่มต้นในรูปแบบที่ยุบอยู่และซ่อนรายการที่มีความสำคัญน้อยกว่า จนกว่าผู้ใช้จะคลิกปุ่มขยาย
- UI ตัวเลือกแอปเริ่มต้น
- UI สำหรับเลือกเบราว์เซอร์เริ่มต้น แอปโทรศัพท์เริ่มต้น ฯลฯ
- จากเดิมที่เป็นกล่องโต้ตอบ ตอนนี้เป็น UI แบบปุ่มตัวเลือกแบบเต็มหน้าจอแล้ว
- ค่ากำหนดรูปแบบ "MasterSwitch" นี่คือค่ากำหนดที่มีเป้าหมายการคลิก 2 รายการ เป้าหมายทางซ้ายจะนำไปสู่ส่วนย่อยหรือ Intent ของการแบ่งชุด เป้าหมายด้านขวาคือ สวิตช์เปิด/ปิด ซึ่งควบคุมการเปิด/ปิดทั้งหน้า
ตัวอย่างและแหล่งที่มา
- ลักษณะการทำงานของตัวแบ่ง
- ระบบจะแก้ไขหน้าทั้งหมดในการตั้งค่าให้ใช้ลักษณะการทำงานของตัวคั่นแบบใหม่
- ลักษณะการทำงานของตัวคั่นกำหนดไว้เป็น ThemeOverlay ใน
packages/apps/Settings/res/values/styles_preference.xml
- เปลี่ยนธีม ActionBar
- ระบบจะแก้ไขหน้าทั้งหมดในการตั้งค่าให้ใช้ธีม ActionBar ใหม่
- ธีมจะกำหนดไว้ใน Theme.DeviceDefault.Settings
- เลย์เอาต์ค่ากำหนดใหม่
- ตอนนี้หลายหน้าในการตั้งค่าใช้เลย์เอาต์การตั้งค่าใหม่แล้ว
- คุณดูรหัสได้ใน
packages/apps/Settings/res/values/styles_preference.xml
- วิดเจ็ตส่วนหัวของแอป
- หน้าข้อมูลแอปส่วนใหญ่ในการตั้งค่าใช้ ส่วนหัวของแอปใหม่แล้ว
- ดูตัวอย่างและโค้ดได้ที่
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- ปุ่มขยาย
- ดูตัวอย่างและโค้ดได้ที่
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
หมายเหตุ: ต้องใช้คอมโพเนนต์นี้ร่วมกับ DashboardFragment (ดูรายละเอียดเพิ่มเติมเกี่ยวกับ DashboardFragment ได้ในสถาปัตยกรรมข้อมูลที่อัปเดต)
- ดูตัวอย่างและโค้ดได้ที่
- เครื่องมือเลือกแอปเริ่มต้น
- คุณดูโค้ดสำหรับคลาสฐานได้ที่
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- DefaultAppPickerFragment มีคลาสย่อยหลายคลาส ซึ่งแต่ละคลาสจะใช้ตัวเลือกสำหรับ Intent ที่แตกต่างกัน
- คุณดูโค้ดสำหรับคลาสฐานได้ที่
- ค่ากำหนดสไตล์ MasterSwitch
- โค้ดอยู่ที่
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
- ตัวอย่าง Use Case คือการสลับหลักของ Wi-Fi คุณดูตัวอย่างได้ที่
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- โค้ดอยู่ที่
การใช้งาน
ผู้ผลิตอุปกรณ์สามารถเริ่มใช้คอมโพเนนต์ใหม่ทั้งหมดได้ทันที หาก OEM ตัดสินใจที่จะใช้ค่ากำหนดสไตล์ "MasterSwitch" ใหม่หรือตัวเลือกแอปเริ่มต้น ควรทำตามตัวอย่างในเอกสารนี้และไฟล์อ้างอิง (Javadoc) ที่เขียนด้วยคอมโพเนนต์แต่ละรายการเพื่อดูรายละเอียดเพิ่มเติม
ปรับแต่งเมนูการตั้งค่า
- ลักษณะการทำงานของตัวคั่น หากต้องการเปลี่ยนวิธีวาดเส้นคั่น ให้อัปเดตรูปแบบสำหรับเส้นคั่นการตั้งค่าและ
เปลี่ยนค่าสำหรับรายการต่อไปนี้
allowDividerAbove
allowDividerBelow
allowDividerAfterLastItem
- สีธีมของ ActionBar กิจกรรมควรใช้
Theme.DeviceDefault.Settings
เป็นธีม หรือ สร้างธีมที่กำหนดเองโดยใช้Theme.DeviceDefault.Settings
เป็นธีมหลัก - วิดเจ็ตส่วนหัวของแอป ใช้ตัวตั้งค่าใน AppHeaderController เพื่อปรับแต่งแต่ละฟิลด์และเรียกใช้
build()
เมื่อตั้งค่าฟิลด์ทั้งหมดแล้ว - ปุ่มขยาย
- หากต้องการปิดใช้ฟังก์ชันการทำงานอย่างสมบูรณ์ ให้ลบล้างตัวสร้างสำหรับ ProgressiveDisclosureMixin และตั้งค่า keepExpanded เป็น true
- หากต้องการปรับแต่งจำนวนรายการที่จะแสดงในตอนแรก ให้เรียกใช้เมธอด
ProgressiveDisclosureMixin.setTileLimit()
ระหว่างเมธอดonAttach(Context)
ของ Fragment