คอมโพเนนต์และแอตทริบิวต์ที่ต้องการ เป็นส่วนหนึ่งของ Android Jetpack

หัวข้อนี้จะอธิบายถึงคอมโพเนนต์ Preference บางส่วนที่ใช้กันโดยทั่วไปและ แอตทริบิวต์ที่ใช้เมื่อสร้างหน้าจอการตั้งค่า

คอมโพเนนต์ค่ากำหนด

ส่วนนี้อธิบายคอมโพเนนต์ Preference ทั่วไป สำหรับข้อมูลเพิ่มเติม โปรดดู หน้าอ้างอิงที่เกี่ยวข้องสำหรับแต่ละคอมโพเนนต์

โครงสร้างพื้นฐานที่ต้องการ

PreferenceFragmentCompat Fragment ที่จัดการ แสดงลำดับชั้นแบบอินเทอร์แอกทีฟของออบเจ็กต์ Preference รายการ

คอนเทนเนอร์ค่ากำหนด

PreferenceScreen คอนเทนเนอร์ระดับบนสุดที่แสดงหน้าจอการตั้งค่า นี่คือรูท คอมโพเนนต์ของลำดับชั้น Preference

PreferenceCategory คอนเทนเนอร์ที่ใช้ในการจัดกลุ่ม Preferences ที่คล้ายกัน PreferenceCategory แสดงชื่อหมวดหมู่และแยกกลุ่มของ Preferences ออกจากกัน

ค่ากำหนดส่วนบุคคล

Preference - ข้อมูลเบื้องต้น องค์ประกอบที่ใช้สร้างสรรค์ที่แสดงการตั้งค่าแต่ละรายการ หากตั้งค่า Preference ไว้ เพื่อคงประสิทธิภาพไว้ มีคู่คีย์-ค่าที่เกี่ยวข้องซึ่งเก็บตัวเลือกของผู้ใช้ สำหรับการตั้งค่าที่สามารถเข้าถึงได้ในส่วนอื่นของแอปพลิเคชัน

EditTextPreference Preference ที่คงค่า String ผู้ใช้แตะPreferenceได้ เพื่อเปิดกล่องโต้ตอบที่มีช่องข้อความซึ่งให้ผู้ใช้เปลี่ยน ค่าเดิม

ListPreference - Preference ที่คงค่าสตริง ผู้ใช้เปลี่ยนค่านี้ได้ใน ที่มีรายการปุ่มตัวเลือกพร้อมป้ายกำกับที่เกี่ยวข้อง

MultiSelectListPreference Preference ที่คงชุดสตริงไว้ ผู้ใช้เปลี่ยนค่าเหล่านี้ได้ใน กล่องโต้ตอบที่มีรายการช่องทำเครื่องหมาย พร้อมป้ายกำกับที่เกี่ยวข้อง

SeekBarPreference Preference ที่คงค่าจำนวนเต็ม ค่านี้สามารถเปลี่ยนแปลงได้โดย ลากแถบเลื่อนที่เกี่ยวข้องซึ่งแสดงในเลย์เอาต์ Preference

SwitchPreferenceCompat Preference ที่คงค่าบูลีน ค่านี้สามารถเปลี่ยนแปลงได้โดย โต้ตอบกับวิดเจ็ตสวิตช์ที่เกี่ยวข้อง หรือโดยการแตะ เลย์เอาต์ Preference

CheckBoxPreference Preference ที่คงค่าบูลีน ค่านี้สามารถเปลี่ยนแปลงได้โดย โต้ตอบกับช่องทำเครื่องหมายที่เกี่ยวข้องหรือโดยการแตะ Preference เลย์เอาต์

แอตทริบิวต์ค่ากำหนด

ด้านล่างนี้เป็นแอตทริบิวต์ที่ใช้บ่อยที่สุดบางส่วนซึ่งกำหนดค่า รูปลักษณ์และลักษณะการทำงานของ Preference

แอตทริบิวต์ทั่วไป

title

ค่า String ที่แสดงชื่อของแท็ก Preference

เช่น app:title="Title"

summary

ค่า String ที่แสดงถึง Preference สรุป

เช่น app:summary="Summary"

icon

Drawable ที่แสดงถึง Preference ไอคอน

เช่น app:icon="@drawable/ic_camera"

key

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

เช่น app:key="key"

enabled

ค่าบูลีนที่ระบุว่าผู้ใช้สามารถโต้ตอบกับ Preference เมื่อค่านี้เป็น false ค่า Preferenceจะปรากฏเป็นสีเทา และผู้ใช้จะโต้ตอบกับ ได้ ค่าเริ่มต้นคือ true

เช่น app:enabled="false"

selectable

ค่าบูลีนที่ระบุว่าผู้ใช้สามารถโต้ตอบกับ Preference ค่าเริ่มต้นคือ true

เช่น app:selectable="false"

isPreferenceVisible

ค่าบูลีนที่ระบุว่า Preference หรือ หมวดหมู่ Preference แสดงอยู่ ซึ่งเทียบเท่ากับการโทร setVisible()

เช่น app:isPreferenceVisible="false"

defaultValue

แสดงค่าเริ่มต้นสำหรับ Preference ค่านี้คือ ตั้งค่าและยังคงอยู่เมื่อไม่มีค่าอื่นยังคงอยู่สำหรับค่านี้ พบ Preference ประเภทค่าจะขึ้นอยู่กับ Preference

เช่น app:defaultValue="true"

dependency

แสดงคีย์ของ SwitchPreferenceCompat ที่ควบคุม สถานะของPreferenceนี้ เมื่อสวิตช์ที่เกี่ยวข้อง ปิดอยู่ Preference เครื่องนี้ปิดใช้อยู่และไม่สามารถ แก้ไขได้

เช่น app:dependency="parent"

แอตทริบิวต์ PreferenceCategory

initialExpandedChildrenCount

ค่าจำนวนเต็มที่เปิดใช้ Preference ที่ขยายได้ พฤติกรรมของคุณ ค่านี้แสดงจำนวนรายการย่อยสูงสุดที่จะแสดง PreferenceGroup เด็กที่เกินมาจะถูกยุบและ โดยแตะที่ปุ่มขยาย โดยค่าเริ่มต้น ค่านี้จะ Integer.MAX_VALUE และแสดงเด็กทุกคน

คำเตือน: โปรดตรวจสอบว่าคุณได้ตั้งค่าคีย์ใน PreferenceCategory หากใช้แอตทริบิวต์นี้เพื่อให้สถานะ จะได้รับการบันทึกและกู้คืนอย่างถูกต้องเมื่อมีการเปลี่ยนแปลงการกำหนดค่า (เช่น เมื่อหมุนหน้าจอ)

เช่น app:initialExpandedChildrenCount="0"

แอตทริบิวต์ ListPreference / MultiSelectListPreference

entries

อาร์เรย์ของสตริงที่สอดคล้องกับรายการที่จะแสดง ให้แก่ผู้ใช้ แต่ละค่าจะสอดคล้องตามดัชนีกับอาร์เรย์ของ ค่าที่มีอยู่ภายใน เช่น เมื่อผู้ใช้เลือก รายการแรก องค์ประกอบแรกในอาร์เรย์ค่าที่เกี่ยวข้อง อยู่

เช่น app:entries="@array/entries"

คำเตือน: ตรวจสอบว่าความยาวของอาร์เรย์ทั้งสองคือ และดัชนีของแต่ละอาร์เรย์ตรงกับรายการ / ค่าที่ถูกต้อง คู่กัน

entryValues

อาร์เรย์ของรายการที่จะคงอยู่ แต่ละค่าจะสอดคล้องกับ ดัชนีเป็นอาร์เรย์ของรายการที่แสดงให้ผู้ใช้เห็น

เช่น app:entryValues="@array/values"