ภาพรวมโครงร่างฐาน
แถบเครื่องมือ car-ui-lib ได้รับการปรับแต่งผ่านไฟล์โครงร่าง car_ui_base_layout_toolbar.xml
มันถูกเรียกว่าแถบเครื่องมือ *baselayout* เนื่องจากไฟล์เลย์เอาต์นี้มี FrameLayout
ที่มีรหัส car_ui_base_layout_content_container
ซึ่งจะมีเนื้อหาทั้งหมดของแอปไม่นานหลังจากที่เลย์เอาต์ขยายใหญ่ขึ้น โครงสร้างนี้ช่วยให้ OEM วางแถบเครื่องมือในตำแหน่งอื่นที่ไม่ใช่ด้านบนของหน้าจอ
เค้าโครงที่เป็นไปได้ | ||
---|---|---|
ด้วยการเปลี่ยนพารามิเตอร์โครงร่างบน car_ui_base_layout_content_container
แอปสามารถบีบอัดลงในพื้นที่ขนาดเล็กลงเพื่อเพิ่มพื้นที่สำหรับแถบเครื่องมือ อย่างไรก็ตาม การปรับแต่งบางอย่างอาจกำหนดให้แถบเครื่องมือมีความโปร่งใสและซ้อนทับที่ด้านบนของแอป ในกรณีนี้ คุณสามารถแท็กมุมมองด้วย car_ui_top/bottom/left/right_inset
หาก car-ui-lib ตรวจพบมุมมองด้วยแท็กดังกล่าว มันจะสื่อสารตำแหน่งและขนาดของมุมมองนั้นไปยังแอป เพื่อให้สามารถเยื้องเนื้อหาเข้าด้านในด้วยจำนวนนั้น แต่ยังคงมีพื้นหลังที่เหมาะสมในพื้นที่ใต้แถบเครื่องมือ . ตัวอย่างเช่น แอพส่วนใหญ่จะมีรายการแรกใน CarUiRecyclerView เริ่มต้นที่ด้านล่างของสิ่งที่ใส่เข้าไปที่ระบุ แต่ยังคงมองเห็นได้ด้านหลังแถบเครื่องมือเมื่อผู้ใช้เลื่อนลง
รองรับโรตารี
เพื่อสนับสนุนตัวควบคุมแบบหมุน โครงร่างพื้นฐานจะต้องมี FocusParkingView
โดยเร็วที่สุดในโครงร่าง มุมมองนี้คือสิ่งที่จะได้รับการโฟกัสเมื่อผู้ใช้ไม่สามารถมองเห็นโฟกัสได้ แถบเครื่องมือยังต้องรวมไว้ใน FocusParkingView
ซึ่งระบุว่าเป็นโซนเขยิบแยกต่างหากสำหรับตัวควบคุมแบบหมุน หากไม่ได้รวมไว้ใน FocusParkingView ผู้ใช้จะไม่สามารถโต้ตอบกับแถบเครื่องมือด้วยตัวควบคุมแบบหมุนได้
แท็บ
แท็บแถบเครื่องมือได้รับการปรับแต่งโดยไฟล์โครงร่าง car_ui_toolbar_tab_item.xml
หรือ car_ui_toolbar_tab_item_flexible.xml
ไม่มีความแตกต่างในการทำงานระหว่างไฟล์ต่างๆ ทรัพยากร car_ui_toolbar_tab_flexible_layout
Boolean จะเป็นตัวกำหนดว่าจะใช้ไฟล์ใด ด้วยเหตุนี้ เราจึงแนะนำให้ตั้งค่า car_ui_toolbar_tab_flexible_layout
เป็น false
และปรับแต่งเฉพาะไฟล์เลย์เอาต์ปกติเท่านั้น
ImageView
ของแท็บจะถูกแต้มสีด้วยสี car_ui_toolbar_tab_item_selector
ในโค้ด Java ดังนั้น car_ui_toolbar_tab_item_selector
จะต้องปรับแต่งควบคู่ไปกับเค้าโครง แอปสามารถขอไม่ให้ไอคอนบนแท็บของตนถูกแต้มด้วยสีนี้ได้เช่นกัน
TextView
ของแท็บมีการตั้งค่าลักษณะข้อความเป็น TextAppearance.CarUi.Widget.Toolbar.Tab
หรือ TextAppearance.CarUi.Widget.Toolbar.Tab.Selected
ในโค้ด Java ดังนั้นลักษณะที่ปรากฏของข้อความที่ตั้งค่าบนไฟล์เค้าโครงจะไม่นำไปใช้ ต้องปรับแต่งสไตล์เหล่านี้ด้วย
เมนูรายการ
MenuItems
คือปุ่มที่มุมขวาบนของแถบเครื่องมือเริ่มต้น อาจเป็นข้อความ ไอคอน ไอคอนและข้อความ หรือสวิตช์ รูปแบบเหล่านี้ทั้งหมดเป็นส่วนหนึ่งของไฟล์โครงร่าง car_ui_toolbar_menu_item
เนื่องจาก MenuItems
จะต้องสามารถเปลี่ยนแปลงระหว่างแต่ละแบบฟอร์มได้หากแอปร้องขอ
MenuItems
สามารถเป็น primary ซึ่งจะทำให้ไฟล์โครงร่างอื่นขยาย: car_ui_toolbar_menu_item_primary
MenuItem หลักจะต้องดูแตกต่างจาก MenuItem ปกติ เช่น ผ่านปุ่มที่มีขอบ/ไม่มีขอบ ตามค่าเริ่มต้น car_ui_toolbar_menu_item_primary
เพียงเปลี่ยนเส้นทางไปที่ car_ui_toolbar_menu_item
ดังนั้นจึงมีลักษณะเหมือนกัน
MenuItems
สามารถ เปิดใช้งานได้ ซึ่งเป็นสถานะภาพอีกสถานะหนึ่งที่ระบุว่า MenuItem นี้ถูกสลับอยู่ สถานะนี้ถูกนำไปใช้โดยการเรียก setActivated(true)
ในมุมมอง MenuItem ซึ่งจะเพิ่มสถานะ state_activated
ให้กับ Drawable ทั้งหมดในมุมมองของ MenuItem สถานะ Drawable นี้สามารถตอบกลับได้ด้วยตัวเลือก Drawable ใน Runtime Resource Overlay (RRO)
MenuItems
สามารถ จำกัด UX ได้ เมื่อรถกำลังเคลื่อนที่ UX ที่จำกัดนั้นเป็นเพียงสถานะที่สามารถถอนออกได้เช่น เปิดใช้งาน แต่คราวนี้สถานะถูกกำหนดไว้ในแอปแทนที่จะเป็นเฟรมเวิร์ก Android ซึ่งหมายความว่าแอตทริบิวต์ state_ux_restricted
จะต้องซ้อนทับกับ RRO ด้วย เพื่อให้แอตทริบิวต์ที่กำหนดใน RRO ตรงกับแอตทริบิวต์ที่กำหนดในแอป
ค้นหา
แถบค้นหามีอยู่ในไฟล์โครงร่างcar_ui_toolbar_search_view
แยกต่างหาก เพื่อปรับปรุงประสิทธิภาพการขยายเลย์เอาต์สำหรับแอปที่ไม่ต้องใช้แถบค้นหา FrameLayout
ที่มี id car_ui_toolbar_search_view_container
จะมีแถบค้นหาเมื่อพองตัว