ค่ากำหนด

สร้างหน้าจอการตั้งค่าแบบอินเทอร์แอกทีฟโดยไม่จำเป็นต้องโต้ตอบกับพื้นที่เก็บข้อมูลของอุปกรณ์หรือจัดการ UI
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
26 กรกฎาคม 2023 1.2.1 - - -

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ในค่ากำหนด คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google

เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle ของแอปหรือโมดูล

ดึงดูด

dependencies {
    def preference_version = "1.2.1"

    // Java language implementation
    implementation "androidx.preference:preference:$preference_version"
    // Kotlin
    implementation "androidx.preference:preference-ktx:$preference_version"
}

Kotlin

dependencies {
    val preference_version = "1.2.1"

    // Java language implementation
    implementation("androidx.preference:preference:$preference_version")
    // Kotlin
    implementation("androidx.preference:preference-ktx:$preference_version")
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ที่หัวข้อเพิ่มทรัพยากร Dependency ในการสร้าง

ความคิดเห็น

ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีไอเดียในการปรับปรุงไลบรารีนี้ โปรดดู ปัญหาที่มีอยู่แล้ว ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่แล้วได้โดยคลิกปุ่มรูปดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของIssue Tracker

เวอร์ชัน 1.2

เวอร์ชัน 1.2.1

26 กรกฎาคม 2023

เปิดตัว androidx.preference:preference:1.2.1 แล้ว เวอร์ชัน 1.2.1 มีการคอมมิตต่อไปนี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ PreferenceHeaderFragmentCompat จัดการปุ่มย้อนกลับของระบบได้อย่างถูกต้องเมื่อใช้ภายใน ComponentDialog หรือเมื่อใช้ไลบรารี เช่น @AndroidEntryPoint ของ Hilt ที่ห่อหุ้ม Context ของ Fragment
  • ตอนนี้ค่ากำหนดขึ้นอยู่กับ Activity 1.5.1 แล้ว (Ie5d22)
  • PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment ตอนนี้จะเผยแพร่ header.extras เป็นอาร์กิวเมนต์ Fragment

เวอร์ชัน 1.2.0

26 มกราคม 2022

เปิดตัว androidx.preference:preference:1.2.0 และ androidx.preference:preference-ktx:1.2.0 แล้ว เวอร์ชัน 1.2.0 มีการคอมมิตต่อไปนี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.1.0

  • เพิ่ม PreferenceHeaderFragmentCompat สำหรับค่ากำหนด 2 บานหน้าต่างที่ปรับให้เข้ากับขนาดของอุปกรณ์ที่ใช้โดยอัตโนมัติ จึงเหมาะสำหรับการใช้งานในโทรศัพท์ โทรศัพท์แบบพับได้ และแท็บเล็ต บานหน้าต่างส่วนหัวจะแสดงโดยการลบล้างเมธอด onCreatePreferenceHeader() ใน PreferenceHeaderFragmentCompat <Preference> ใดๆ ใน PreferenceFragmentCompat ส่วนหัวที่ใช้ app:fragment จะทำให้ Fragment นั้นปรากฏในบานหน้าต่างรายละเอียดที่ 2 คุณสามารถปรับแต่ง Fragment รายละเอียดเริ่มต้นที่ควรแสดงก่อนที่จะเลือกค่ากำหนดด้วยตนเองได้โดยการลบล้าง onCreateInitialDetailFragment() การใช้งานเริ่มต้นจะแสดงค่ากำหนดแรกที่มีการกำหนด Fragment ไว้
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
    override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
        return PreferenceHeader()
    }
}
  • เพิ่มคำอธิบายประกอบเกี่ยวกับความสามารถในการเว้นว่างให้กับ API หลายรายการที่ก่อนหน้านี้ไม่ได้ระบุ @NonNull หรือ @Nullable การเปลี่ยนแปลงนี้อาจทำให้โค้ด Kotlin เสียหายได้หากค่า Null ที่คุณเลือกไว้ในโค้ด Kotlin ไม่ตรงกับค่า Null ที่กำหนดไว้ในตอนนี้

  • ตอนนี้ PreferenceFragmentCompat จะค้นหาการใช้งานอินเทอร์เฟซ OnPreferenceStartFragmentCallback, OnNavigateToScreenListener และ OnDisplayPreferenceDialogListener ใน Fragment หลักก่อนที่จะดูว่า Context หรือ Activity ที่โฮสต์มีการใช้งานอินเทอร์เฟซเหล่านี้หรือไม่

เวอร์ชัน 1.2.0-rc01

15 ธันวาคม 2021

เปิดตัว androidx.preference:preference:1.2.0-rc01 และ androidx.preference:preference-ktx:1.2.0-rc01 โดยไม่มีการเปลี่ยนแปลงใดๆ ตั้งแต่ 1.2.0-beta01 เวอร์ชัน 1.2.0-rc01 มีการคอมมิตต่อไปนี้

เวอร์ชัน 1.2.0-beta01

17 พฤศจิกายน 2021

เปิดตัว androidx.preference:preference:1.2.0-beta01 และ androidx.preference:preference-ktx:1.2.0-beta01 โดยไม่มีการเปลี่ยนแปลงใดๆ จากค่ากำหนด 1.2.0-alpha02 เวอร์ชัน 1.2.0-beta01 มีการคอมมิตต่อไปนี้

เวอร์ชัน 1.2.0-alpha02

3 พฤศจิกายน 2021

เปิดตัว androidx.preference:preference:1.2.0-alpha02 และ androidx.preference:preference-ktx:1.2.0-alpha02 แล้ว เวอร์ชัน 1.2.0-alpha02 มีการคอมมิตต่อไปนี้

การเปลี่ยนแปลงของ API

  • เพิ่มคำอธิบายประกอบเกี่ยวกับความสามารถในการเว้นว่างให้กับ API หลายรายการที่ก่อนหน้านี้ไม่ได้ระบุ @NonNull หรือ @Nullable (I04252, Ie2cc0)
  • นำ API openPreference() ออกจาก PreferenceHeaderFragmentCompat - ระบบจะเรียกเมธอดนี้ให้คุณและคุณไม่ควรเรียกด้วยตนเอง (Ia6989)

การเปลี่ยนแปลงพฤติกรรม

  • ตอนนี้การเรียกกลับของ PreferenceFragmentCompat สำหรับ OnNavigateToScreenListener และ OnDisplayPreferenceDialogListener เป็นไปตามรูปแบบเดียวกับ OnPreferenceTreeClickListener และค้นหาลำดับชั้นของ Fragment หลักเพื่อหา Listener ที่ถูกต้องก่อนที่จะดูว่า Context หรือ Activity ที่โฮสต์มีการใช้งานอินเทอร์เฟซเหล่านี้หรือไม่ (I7ae6c)

เวอร์ชัน 1.2.0-alpha01

27 ตุลาคม 2021

เปิดตัว androidx.preference:preference:1.2.0-alpha01 และ androidx.preference:preference-ktx:1.2.0-alpha01 แล้ว เวอร์ชัน 1.2.0-alpha01 มีการคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • เพิ่ม PreferenceHeaderFragmentCompat สำหรับค่ากำหนด 2 บานหน้าต่าง (I9a2d8)

การเปลี่ยนแปลงพฤติกรรม

  • ตอนนี้การเรียกกลับของค่ากำหนดสำหรับ OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback และ OnPreferenceStartFragmentCallback สามารถใช้งานได้ใน Context ที่ไม่ใช่ Activity ระบบจะตรวจสอบ getContext() เพื่อดูว่ามีการใช้งานการเรียกกลับเหล่านี้หรือไม่ก่อนที่จะตรวจสอบ getActivity() หาก getContext() แสดงผล Activity (กรณีทั่วไป) ก็จะไม่มีการเปลี่ยนแปลงลักษณะการทำงาน

  • ตอนนี้การเรียก onPreferenceTreeClick ของ PreferenceFragmentCompat จะค้นหาการใช้งานอินเทอร์เฟซ OnPreferenceStartFragmentCallback ใน Fragment หลักก่อนที่จะพิจารณาการใช้งานของ Activity (c64eed)

เวอร์ชัน 1.1

เวอร์ชัน 1.1.1

15 เมษายน 2020

เปิดตัว androidx.preference:preference:1.1.1 และ androidx.preference:preference-ktx:1.1.1 แล้ว เวอร์ชัน 1.1.1 มีการคอมมิตต่อไปนี้

การแก้ไขข้อบกพร่อง

  • PreferenceDialogFragmentCompat จะไม่แสดง IllegalStateException อีกต่อไปเมื่อขยาย FragmentContainerView จาก XML (b/150051716)

การอัปเดตทรัพยากร Dependency

  • ตอนนี้ค่ากำหนดขึ้นอยู่กับ Fragment 1.2.4 แล้ว (aosp/1277317)
  • ตอนนี้ทรัพยากร Dependency preference-ktx ขึ้นอยู่กับ androidx.core:core-ktx:1.1.0 และ androidx.fragment:fragment-ktx:1.2.4 ซึ่งสะท้อนถึงทรัพยากร Dependency ของอาร์ติแฟกต์ preference หลักและช่วยให้การอัปเกรด preference-ktx อัปเดตทั้งอาร์ติแฟกต์หลักและอาร์ติแฟกต์ -ktx ของทรัพยากร Dependency แบบชั่วคราว (aosp/1277319)

เวอร์ชัน 1.1.0

5 กันยายน 2019

เปิดตัว androidx.preference:preference:1.1.0 และ androidx.preference:preference-ktx:1.1.0 แล้ว ดูการคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

หากนี่เป็นการเปิดตัว 1.1.* ครั้งแรกที่คุณอัปเดต นี่คือรายการการเปลี่ยนแปลงที่สำคัญตั้งแต่การเปิดตัวเวอร์ชันเสถียรล่าสุด 1.0.0 นอกจากนี้ คุณอาจพบว่าคู่มือการตั้งค่า, แอปตัวอย่าง และการพูดคุยใน Android Dev Summit มีประโยชน์

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.0.0

  • เราได้เลิกใช้งาน PreferenceFragment และคลาสอื่นๆ ที่ใช้ Fragment ของเฟรมเวิร์กแล้ว คุณควรใช้ PreferenceFragmentCompat และคลาส *compat อื่นๆ แทน
  • ตอนนี้คุณสามารถตั้งค่า SummaryProvider ในค่ากำหนดเพื่อกำหนดค่าสรุปแบบไดนามิกทุกครั้งที่ค่ากำหนดได้รับการอัปเดตหรือผู้ใช้มองเห็น ดูข้อมูลเพิ่มเติมได้ในคู่มือ
  • เพิ่มอินเทอร์เฟซ EditTextPreference.OnBindEditTextListener ซึ่งช่วยให้ปรับแต่ง EditText ที่แสดงในกล่องโต้ตอบที่เกี่ยวข้องได้หลังจากที่กล่องโต้ตอบได้รับการผูกแล้ว นี่เป็นการแทนที่โดยตรงสำหรับการใช้แอตทริบิวต์ เช่น android:inputType ใน EditTextPreference โดยตรง ซึ่งไลบรารี AndroidX ไม่รองรับ ดูข้อมูลเพิ่มเติมได้ในคู่มือ
  • เพิ่ม Preference.setCopyingEnabled() เมื่อตั้งค่าแล้ว การกดค่ากำหนดค้างไว้จะแสดงเมนูตามบริบทที่อนุญาตให้คัดลอกสรุปของค่ากำหนด
  • อัปเดตการจัดรูปแบบ SeekBarPreference ให้ตรงตามข้อกำหนดเฉพาะของ Material ดูบันทึกการเปลี่ยนแปลงโดยละเอียดสำหรับการเปลี่ยนแปลงอื่นๆ ใน SeekBarPreference
  • แก้ไขข้อบกพร่องจำนวนมาก อัปเดตสไตล์ แก้ไขความเข้ากันได้ของระดับ API และปรับปรุง QOL ทั่วไป

เวอร์ชัน 1.1.0-rc01

2 กรกฎาคม 2019

เปิดตัว androidx.preference:preference:1.1.0-rc01 และ androidx.preference:preference-ktx:1.1.0-rc01 แล้ว ดูการคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

การเปลี่ยนแปลงของ API

  • เลิกใช้งาน Preference#onInitializeAccessibilityNodeInfo
  • เมธอดนี้ทำหน้าที่เป็นพร็อกซีข้อมูลโหนดการช่วยเหลือพิเศษสำหรับค่ากำหนดที่เฉพาะเจาะจง แต่เลเยอร์นี้ไม่เหมาะสำหรับการปรับแต่งนี้ หากต้องการปรับข้อมูลการช่วยเหลือพิเศษ คุณควรลบล้าง onBindViewHolder และเพิ่มข้อมูลการช่วยเหลือพิเศษลงในมุมมองโดยตรงแทน

เวอร์ชัน 1.1.0-beta01

5 มิถุนายน 2019

เปิดตัว androidx.preference:preference:1.1.0-beta01 และ androidx.preference:preference-ktx:1.1.0-beta01 แล้ว ดูการคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.1.0

หากนี่เป็นการเปิดตัว 1.1.* ครั้งแรกที่คุณอัปเดต นี่คือรายการการเปลี่ยนแปลงที่สำคัญตั้งแต่การเปิดตัวเวอร์ชันเสถียรล่าสุด 1.1.0 นอกจากนี้ คุณอาจพบว่าคู่มือการตั้งค่า, แอปตัวอย่าง และการพูดคุยใน Android Dev Summit มีประโยชน์

  • เราได้เลิกใช้งาน PreferenceFragment และคลาสอื่นๆ ที่ใช้ Fragment ของเฟรมเวิร์กแล้ว คุณควรใช้ PreferenceFragmentCompat และคลาส *compat อื่นๆ แทน
  • ตอนนี้คุณสามารถตั้งค่า SummaryProvider ในค่ากำหนดเพื่อกำหนดค่าสรุปแบบไดนามิกทุกครั้งที่ค่ากำหนดได้รับการอัปเดตหรือผู้ใช้มองเห็น ดูข้อมูลเพิ่มเติมได้ในคู่มือ
  • เพิ่มอินเทอร์เฟซ EditTextPreference.OnBindEditTextListener ซึ่งช่วยให้ปรับแต่ง EditText ที่แสดงในกล่องโต้ตอบที่เกี่ยวข้องได้หลังจากที่กล่องโต้ตอบได้รับการผูกแล้ว นี่เป็นการแทนที่โดยตรงสำหรับการใช้แอตทริบิวต์ เช่น android:inputType ใน EditTextPreference โดยตรง ซึ่งไลบรารี AndroidX ไม่รองรับ ดูข้อมูลเพิ่มเติมได้ในคู่มือ
  • เพิ่ม Preference.setCopyingEnabled() เมื่อตั้งค่าแล้ว การกดค่ากำหนดค้างไว้จะแสดงเมนูตามบริบทที่อนุญาตให้คัดลอกสรุปของค่ากำหนด
  • อัปเดตการจัดรูปแบบ SeekBarPreference ให้ตรงตามข้อกำหนดเฉพาะของ Material ดูบันทึกการเปลี่ยนแปลงโดยละเอียดสำหรับการเปลี่ยนแปลงอื่นๆ ใน SeekBarPreference
  • แก้ไขข้อบกพร่องจำนวนมาก อัปเดตสไตล์ แก้ไขความเข้ากันได้ของระดับ API และปรับปรุง QOL ทั่วไป

การเปลี่ยนแปลงของ API ตั้งแต่เวอร์ชัน 1.1.0-alpha05

  • นำ getOnBindEditTextListener ออกจาก API สาธารณะ คุณควรใช้ setOnBindEditTextListener เท่านั้นเมื่อโต้ตอบกับ API นี้

โปรดรายงานข้อบกพร่อง ที่นี่ หากพบปัญหาหรือมีคำแนะนำสำหรับฟีเจอร์ใหม่

เวอร์ชัน 1.1.0-alpha05

7 พฤษภาคม 2019

เปิดตัว androidx.preference:preference:1.1.0-alpha05 และ androidx.preference:preference-ktx:1.1.0-alpha05 แล้ว ดูการคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • อัปเดตการจัดรูปแบบสำหรับค่ากำหนดที่เลือกไม่ได้ โดยตอนนี้ชื่อและสรุปจะใช้สีเดียวกันเพื่อให้เห็นชัดเจนว่าโต้ตอบไม่ได้และใช้เพื่อแสดงข้อมูลเท่านั้น
  • หมายเหตุ: คุณอาจต้องการเพิ่ม enableCopying="true" ลงในค่ากำหนดที่เลือกไม่ได้เพื่อให้กดค้างไว้เพื่อคัดลอกสรุปได้

การแก้ไขข้อบกพร่อง

  • แก้ไขการเกิดปัญหาซ้ำที่ทำให้ PreferenceCategory และค่ากำหนดอื่นๆ ที่เลือกไม่ได้มีเอฟเฟกต์ระลอกเมื่อเลือก
  • แก้ไขปัญหาการช่วยเหลือพิเศษที่ TalkBack ไม่เห็น DropDownPreference ว่าคลิกได้
  • แก้ไขปัญหาเลย์เอาต์ RTL บางรายการ
  • อัปเดตคำอธิบายประกอบเกี่ยวกับค่า Null บางรายการใน PreferenceFragmentCompat ให้ตรงกับ Fragment

เวอร์ชัน 1.1.0-alpha04

13 มีนาคม 2019

เปิดตัว androidx.preference:preference:1.1.0-alpha04 และ androidx.preference:preference-ktx:1.1.0-alpha04 แล้ว ดูรายการคอมมิตทั้งหมดที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

การอัปเดต SeekBarPreference

  • อัปเดตการจัดรูปแบบให้ตรงตามข้อกำหนดเฉพาะของ Material
    • ตอนนี้ป้ายกำกับค่าจะซ่อนอยู่โดยค่าเริ่มต้น แต่ยังคงแสดงได้ด้วย app:showSeekBarValue="true" หรือ setShowSeekBarValue(true) ป้ายกำกับนี้ไม่ได้เป็นส่วนหนึ่งของข้อกำหนดเฉพาะของ Material แต่เราเข้าใจว่ามีการใช้งานอย่างแพร่หลาย ดังนั้นเราจะยังคงรองรับต่อไปแม้ว่าจะไม่แนะนำให้ใช้ก็ตาม
    • ตอนนี้ป้ายกำกับค่าจะอัปเดตขณะที่ลาก SeekBar แทนที่จะอัปเดตเมื่อปล่อย โปรดทราบว่าการดำเนินการนี้ไม่ได้หมายความว่าค่าภายในจะได้รับการอัปเดต โปรดดู API ใหม่ด้านล่างที่เปิดใช้ฟังก์ชันการทำงานดังกล่าว
    • หมายเหตุ: แม้ว่าระบบจะรองรับ แต่คุณควรหลีกเลี่ยงการตั้งค่าสรุปใน SeekBarPreference เนื่องจากไม่ได้มีไว้เพื่อการใช้งานดังกล่าวและไม่ได้เป็นส่วนหนึ่งของข้อกำหนดเฉพาะของ Material
  • เพิ่มการรองรับการอัปเดตอย่างต่อเนื่อง ซึ่งช่วยให้ SeekBar อัปเดตค่าที่บันทึกไว้ขณะที่ลาก SeekBar คุณเปิดใช้ฟีเจอร์นี้ได้จาก XML หรือแบบเป็นโปรแกรมด้วย app:updatesContinuously="true" หรือ setUpdatesContinuously(true) ระบบจะทริกเกอร์ฟีเจอร์นี้ทุกครั้งที่ตำแหน่งของ SeekBar บนหน้าจอเปลี่ยนแปลง

การเปลี่ยนแปลงของ API

  • เพิ่มคำอธิบายประกอบเกี่ยวกับความสามารถในการเว้นว่างที่ขาดหายไปลงใน findPreference()

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อบกพร่องที่ Listener ของเมนูตามบริบทไม่ถูกนำออกอย่างถูกต้องหากไม่ได้เปิดใช้การคัดลอก

เวอร์ชัน 1.1.0-alpha03

7 กุมภาพันธ์ 2019

androidx.preference:preference 1.1.0-alpha03

เปิดตัว androidx.preference:preference 1.1.0-alpha03 และ androidx.preference:preference-ktx 1.1.0-alpha03 พร้อมการเปลี่ยนแปลงต่อไปนี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ป๊อปอัปคัดลอก/วางไม่แสดงในกล่องโต้ตอบของ EditTextPreference ในบางครั้ง
  • แก้ไขปัญหาที่ไม่ได้ยกเลิกการลงทะเบียนอะแดปเตอร์พื้นฐานอย่างถูกต้อง ซึ่งทำให้เกิดการรั่วไหลของหน่วยความจำภายใต้เงื่อนไขที่เฉพาะเจาะจง (b/121006469)
  • แก้ไขข้อขัดข้องที่เกี่ยวข้องกับกล่องโต้ตอบบางรายการที่เกิดขึ้นระหว่างการเปลี่ยนแปลงการกำหนดค่า (b/122167543)
  • แก้ไขปัญหาที่ SummaryProvider ไม่ทำงานสำหรับ MultiSelectListPreference (b/123022772)

เวอร์ชัน 1.1.0-alpha02

17 ธันวาคม 2018

โปรดดู คู่มือการตั้งค่าและแอปตัวอย่าง ที่เพิ่งอัปเดตด้วย

ฟีเจอร์ใหม่

  • เพิ่มอินเทอร์เฟซ EditTextPreference.OnBindEditTextListener ซึ่งช่วยให้ปรับแต่ง EditText ที่แสดงในกล่องโต้ตอบที่เกี่ยวข้องได้หลังจากที่กล่องโต้ตอบได้รับการผูกแล้ว เช่น การตั้งค่าประเภท / ความยาวอินพุตที่กำหนดเองหรือการเพิ่ม TextWatcher

  • เพิ่ม Preference.setCopyingEnabled() เมื่อตั้งค่าแล้ว การกดค่ากำหนดค้างไว้จะแสดงเมนูตามบริบทที่อนุญาตให้คัดลอกสรุปของค่ากำหนด คุณสามารถใช้ฟีเจอร์นี้เพื่ออนุญาตให้คัดลอกข้อมูลแบบคงที่ เช่น รหัสเฉพาะของผู้ใช้ / ข้อมูลเวอร์ชันของแอปพลิเคชัน

  • ตอนนี้ preferenceTheme จะใช้กับธีมของ Activity ซึ่งหมายความว่าเมื่อสร้างค่ากำหนดจากโค้ด คุณไม่จำเป็นต้องใช้ Context จาก PreferenceManager#getContext() อีกต่อไป แต่สามารถใช้ Context ของ Fragment/Activity ได้เลย

การเปลี่ยนแปลงของ API

  • ปรับโครงสร้าง findPreference() เพื่อแสดงผล <T extends Preference> ซึ่งหมายความว่าคุณไม่จำเป็นต้องแคสต์ค่ากำหนดอย่างชัดเจนเมื่อใช้ findPreference() เช่น EditTextPreference preference = findPreference(“edit_text”) เป็นโค้ดที่ถูกต้องแล้ว

เวอร์ชัน 1.1.0-alpha01

5 พฤศจิกายน 2018

ฟีเจอร์ใหม่

  • ตอนนี้คุณสามารถตั้งค่า SummaryProvider ในค่ากำหนดเพื่อกำหนดค่าสรุปแบบไดนามิกทุกครั้งที่ค่ากำหนดได้รับการอัปเดตหรือผู้ใช้มองเห็น
  • เพิ่มการใช้งาน SummaryProvider เริ่มต้นสำหรับ ListPreference และ EditTextPreference ซึ่งเมื่อตั้งค่าแล้วจะอัปเดตสรุปของ ค่ากำหนดโดยอัตโนมัติเพื่อให้แสดงค่าที่บันทึกไว้ หรือ "ไม่ได้ตั้งค่า" หากไม่มีการบันทึกค่า คุณตั้งค่าเหล่านี้ได้ด้วย app:useSimpleSummaryProvider="true"
  • เพิ่ม PreferenceGroup#removePreferenceRecursively ซึ่งจะค้นหาและนำค่ากำหนดออกจากกลุ่มหรือกลุ่มที่ซ้อนกันในลำดับชั้นแบบเรียกซ้ำ

การเปลี่ยนแปลงของ API

  • เราได้เลิกใช้งาน PreferenceFragment และคลาสอื่นๆ ที่ใช้ Fragment ของเฟรมเวิร์กแล้ว คุณควรใช้ PreferenceFragmentCompat และคลาส compat อื่นๆ แทน

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ iconSpaceReserved ทำงานไม่ถูกต้องกับ PreferenceCategory
  • แก้ไขปัญหาที่ PreferenceCategory ไม่ใช้ colorAccent สำหรับสีของชื่อใต้ API 21
  • แก้ไขความไม่สอดคล้องของเลย์เอาต์ SeekBarPreference บางรายการใต้ API 21