Android 12 นำเสนอการออกแบบ บานหน้าต่างคู่ โดยมีเมนู L0 แบบคงที่ทางด้านซ้ายและบานหน้าต่างเนื้อหาทางด้านขวา คุณลักษณะนี้แนะนำตัวเลือกการปรับแต่งใหม่ๆ มากมาย หน้านี้แสดงรายละเอียดคุณสมบัติเหล่านั้นและอธิบายวิธีการปรับแต่งการตั้งค่าของคุณเอง
เปลี่ยนกลับเป็นบานหน้าต่างเดียว
ตามค่าเริ่มต้น ตอนนี้ CarSettings จะแสดงมุมมองบานหน้าต่างคู่เมื่อหน้าต่างแอพมีความกว้างมากกว่าหรือเท่ากับ 1400dp และแสดงมุมมองบานหน้าต่างเดียวหากอย่างอื่น หากต้องการปรับแต่งสิ่งนี้สำหรับอุปกรณ์เฉพาะ ให้ใช้รันไทม์รีซอร์สโอเวอร์เลย์ (RRO) เพื่อกำหนดเป้าหมายค่าการกำหนดค่าที่จำเป็น:
ค่า | คำอธิบาย |
---|---|
config_global_force_single_pane | ตั้งค่าเป็น true หากแอปทั้งหมดทำงานในการกำหนดค่าบานหน้าต่างเดียว |
config_homepage_fragment_class | ระบุส่วนเริ่มต้นสำหรับหน้าแรก ในบานหน้าต่างคู่ สิ่งนี้ใช้สำหรับส่วนเริ่มต้นในบานหน้าต่างเนื้อหา ในบานหน้าต่างเดียว นี่ควรเป็นส่วนของหน้าแรก |
ปุ่มส่วนหัว
เนื่องจากกิจกรรม CarSettings ที่แตกต่างกันสามารถมี IA แบบกำหนดเองได้ การแมปคีย์ส่วนหัวจึงมีไว้เพื่อทำให้การปรับแต่งง่ายขึ้น ใน AndroidManifest.xml
ทุกกิจกรรมที่รองรับบานหน้าต่างคู่จะมี TOP_LEVEL_HEADER_KEY
ระบุไว้ในข้อมูลเมตา ค่านี้ชี้ไปที่คีย์ที่ระบุใน res/values/header_keys.xml
ซึ่งแม็พกับคีย์การกำหนดค่าตามความชอบของรายการเมนูระดับบนสุดที่แฟรกเมนต์เริ่มต้นอยู่ภายใต้ ดังนั้น หากส่วนเริ่มต้นของกิจกรรมมีการเปลี่ยนแปลงหรือ IA ถูกจัดเรียงใหม่เพื่อให้ส่วนย่อยใดตกอยู่ภายใต้การกำหนดค่าตามความชอบระดับบนสุดที่แตกต่างกัน การแม็ปที่เกี่ยวข้องในไฟล์ header_keys.xml
สามารถอัพเดตเพื่อระบุค่าที่ถูกต้องได้ .
ปรับแต่งเค้าโครงกิจกรรม
โครงร่างสำหรับ BaseCarSettingsActivity
อยู่ใน res/layout/car_setting_activity
และในส่วนเหล่านี้:
ค่า | คำอธิบาย |
---|---|
top_level_menu | ส่วนเมนูระดับบนสุดที่แสดงในการกำหนดค่าบานหน้าต่างคู่ ความกว้างของส่วนนี้ระบุโดย top_level_menu_width โครงร่างฐานแชสซี (พร้อมแถบเครื่องมือ) ล้อมรอบมุมมองนี้ |
top_level_divider | เส้นแนวตั้งที่แยกทั้งสองบานหน้าต่างและความกว้างที่คุณปรับแต่งได้ด้วย top_level_divider_width |
fragment_container_wrapper | เค้าโครง Wrapper สำหรับบานหน้าต่างเนื้อหา (หรือบานหน้าต่างหลักในการกำหนดค่าบานหน้าต่างเดียว) เค้าโครงฐานของแชสซี (พร้อมแถบเครื่องมือ) ล้อมรอบมุมมองนี้ |
settings_focus_parking_view | การใช้งาน FocusParkingView แบบกำหนดเองเพื่อจับโฟกัสแบบหมุนเมื่อจำเป็น |
fragment_container | คอนเทนเนอร์เนื้อหาหลัก ส่วนของเนื้อหาใช้สิ่งนี้เป็นโครงร่างเป้าหมาย |
restricted_message | มุมมองการบล็อกที่จำกัด UX เพื่อแสดงบนอินสแตนซ์ของ BaseFragment |
รูปที่ 1. เค้าโครงบานหน้าต่างคู่
การตั้งค่าระดับบนสุด
การตั้งค่าระดับบนสุดคือ CarUiPreferences แบบกำหนดเองพร้อมเค้าโครงที่ปรับเปลี่ยนเล็กน้อยเพื่อเปลี่ยนความสูงของการตั้งค่าและรูปร่างพื้นหลัง มีหลายวิธีในการปรับแต่งรูปลักษณ์ของการตั้งค่าเหล่านี้:
ค่า | คำอธิบาย |
---|---|
res/layout/top_level_preference.xml | ซ้อนทับเค้าโครงการตั้งค่า ทั้งหมด |
top_level_preference_min_height | ความสูงขั้นต่ำของการตั้งค่าระดับบนสุด ขึ้นอยู่กับเนื้อหา (เช่น มีคำบรรยาย) การตั้งค่าอาจสูงกว่าค่านี้ |
top_level_preference_corner_radius | รัศมีของการปัดเศษมุม |
top_level_preference_background | ความเป็นมาของการตั้งค่าระดับบนสุดเมื่อไม่ได้ไฮไลต์ในปัจจุบัน |
top_level_preference_highlight | พื้นหลังของการตั้งค่าระดับบนสุดเมื่อไฮไลต์ |
ไอคอนระดับบนสุด
รูปที่ 2 แสดงให้เห็นว่าไอคอนระดับบนสุดประกอบด้วยไอคอนเวกเตอร์ภายในรูปร่างพื้นหลังที่มีสีอย่างไร ปัจจุบันรูปร่างนี้ได้รับการกำหนดค่าให้รองรับทั้งทรงวงรีหรือทรงสี่เหลี่ยม ตามค่าเริ่มต้น รูปร่างจะถูกตั้งค่าเป็นวงรี
หากต้องการเปลี่ยนค่าเริ่มต้น ให้แก้ไขค่าใน config_top_level_icon_shape
(โดยที่ 0 คือสี่เหลี่ยมผืนผ้า และ 1 คือวงรี) ไอคอนถูกสร้างขึ้นโดยการแทรกไอคอนเบื้องหน้าโดย top_level_foreground_icon_inset
จากรูปร่างพื้นหลัง ไอคอนระดับบนสุดแต่ละไอคอนมีสีพื้นหน้าที่ระบุใน res/values/colors.xml
และสีพื้นหลังที่ระบุในโฟลเดอร์ res/color
หากต้องการสร้างรูปลักษณ์ที่กำหนดเอง คุณสามารถแทนที่ค่าสีทั้งหมดได้
รูปที่ 2. ส่วนประกอบการกำหนดลักษณะระดับบนสุด
ไอคอนสำหรับการกำหนดค่าตามความชอบที่แทรกซึ่งอยู่ในหมวดหมู่ที่ระบุโดย config_top_level_injection_categories
จะถือเป็นไอคอนระดับบนสุดเช่นกัน ไอคอนที่ให้มาจะถูกแทรกด้วยค่าเดียวกันและอยู่ในรูปร่างเดียวกันกับที่ระบุไว้สำหรับไอคอนระดับบนสุดอื่นๆ ทั้งหมด (ดูด้านบน) อย่างไรก็ตาม พื้นหลังถูกกำหนดโดยการดูแอตทริบิวต์ต่อไปนี้ตามลำดับนี้:
-
com.android.settings.bg.argb
ข้อมูลเมตาจากแอปที่ฉีด -
com.android.settings.bg.hint
ข้อมูลเมตาจากแอปที่ฉีด -
top_level_injected_default_background
ระบุในres/values/colors.xml
หากต้องการเพิกเฉยต่อข้อมูลแอปที่แทรกและใช้พื้นหลังเริ่มต้นเสมอ ให้ตั้งค่า config_top_level_injection_background_always_use_default
เป็น true