รูปแบบและองค์ประกอบ

ใน Android 8.0 เมนู "การตั้งค่า" มีส่วนประกอบและวิดเจ็ตหลายอย่างที่ ครอบคลุมการใช้งานทั่วไป ขอแนะนำให้ผู้ผลิตอุปกรณ์และนักพัฒนาซอฟต์แวร์ใช้ คอมโพเนนต์ทั่วไปเมื่อขยายแอปการตั้งค่าเพื่อให้อินเทอร์เฟซผู้ใช้ใหม่ยังคงอยู่ สอดคล้องกับ UI การตั้งค่าที่มีอยู่

สรุปการปรับปรุงมีดังนี้

  • การเปลี่ยนแปลงลักษณะการทำงานของตัวแบ่งในเฟรมเวิร์กค่ากำหนดไลบรารีการสนับสนุน ตัวแบ่งคือ ซึ่งแสดงระหว่างหมวดหมู่ต่างๆ
  • เปลี่ยนธีม ActionBar ตอนนี้ ActionBar ใช้ธีมสีอ่อน ข้อความสีเฉพาะจุด
  • เลย์เอาต์ค่ากำหนดใหม่ พื้นที่ว่างสำหรับไอคอนจะยังคงอยู่ แม้จะมีค่ากำหนด ไม่มีไอคอน

วิดเจ็ตใหม่:

  • วิดเจ็ตส่วนหัวสำหรับรายละเอียดแอป แสดงไอคอนแอป ป้ายกำกับแอป และ ข้อมูลอื่นๆ
  • ปุ่มขยายในบางหน้า หน้าอาจเริ่มแบบยุบและซ่อนน้อยลง ที่สำคัญจนกว่าผู้ใช้จะคลิกปุ่มขยาย
  • UI เครื่องมือเลือกแอปเริ่มต้น:
    • UI สำหรับเลือกเบราว์เซอร์เริ่มต้น แอปโทรศัพท์เริ่มต้น ฯลฯ
    • ก่อนหน้านี้กล่องโต้ตอบ แต่ตอนนี้เป็น UI ที่ใช้ปุ่มตัวเลือกแบบเต็มหน้าจอ
  • "MasterSwitch" สไตล์ที่ต้องการ นี่เป็นค่ากำหนดที่มีการคลิก 2 ครั้ง เป้าหมาย เป้าหมายด้านซ้ายนำไปสู่ส่วนย่อยหรือความตั้งใจที่มีการตั้งค่าย่อย เป้าหมายที่ถูกต้องคือ การสลับสวิตช์ การควบคุมการเปิด/ปิดสำหรับทั้งหน้า

ตัวอย่างและแหล่งที่มา

  • ลักษณะการทำงานของเส้นแบ่ง
    • แก้ไขทุกหน้าในการตั้งค่าให้ใช้ลักษณะการแบ่งเส้นแบ่งใหม่
    • ลักษณะการทำงานของตัวแบ่งกำหนดเป็น 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
    • มีคลาสย่อยของ DefaultApp ChooseerFragment อยู่หลายคลาส โดยแต่ละคลาสจะใช้ เครื่องมือเลือกสำหรับจุดประสงค์ที่ต่างกัน
  • ค่ากำหนดรูปแบบ MasterSwitch
    • รหัสอยู่ที่: https://cs.android.com/android/platform/superproject/main/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • ตัวอย่างกรณีการใช้งานคือสวิตช์หลักของ 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()เมื่อตั้งค่าช่องทั้งหมดแล้ว
  • ปุ่มขยาย:
    • หากต้องการปิดใช้งานฟังก์ชันนี้โดยสมบูรณ์ ให้ลบล้างตัวสร้างสำหรับ ProgressiveEnforcementMixin และตั้งค่า KeepExpanded เป็น "จริง"
    • หากต้องการปรับแต่งจำนวนรายการที่จะแสดงในตอนแรก ให้เรียกใช้ เมธอด ProgressiveDisclosureMixin.setTileLimit() ระหว่าง Fragment onAttach(Context) วิธี