หน้านี้จะอธิบายขั้นตอนการปรับแต่งCarUiRecyclerView
และแถบเลื่อน
สิ่งที่ต้องมีก่อน
หน้านี้ถือว่าคุณมีความรู้เกี่ยวกับ APK เป้าหมายของการวางซ้อนทรัพยากรรันไทม์ (RRO) ดูข้อมูลเพิ่มเติมได้ที่ปรับแต่งแอป
เกี่ยวกับ CarUiRecyclerView
เมื่อตั้งค่า car_ui_scrollbar_enable
เป็น false
ใน bools.xml
CarUiRecyclerView
จะไม่ขยายแถบเลื่อน อย่างไรก็ตาม มีเพียง androidx.recyclerview
เท่านั้นที่ขยายให้มีสไตล์ที่ปรับแต่งได้ตามที่ระบุไว้ด้านล่าง
เมื่อตั้งค่า car_ui_scrollbar_enable
เป็น true
CarUiRecyclerView
จะขยายคอนเทนเนอร์โดยติดตั้งแถบเลื่อนไว้ภายใน ต่อมา ระบบจะเพิ่ม androidx.recyclerview
ลงในคอนเทนเนอร์เดียวกันด้วย
CarUiRecyclerView
ใช้อะแดปเตอร์ใดก็ได้เพื่อแสดงข้อมูล แต่เราขอแนะนำให้ใช้ CarUiListItemAdapter
เมื่อไลบรารีแชสซีกำหนดเลย์เอาต์สำหรับรายการในลิสต์ และ OEM จึงปรับแต่งได้ การปรับแต่งสำหรับ ListItems จะกำหนดไว้ในตัวเลือกการปรับแต่งสำหรับ CarUiListItem
โดยค่าเริ่มต้น ระบบจะใช้ car_ui_scrollbar_margin
เป็นความกว้างของมุมมองแถบเลื่อน
ระบบจะเพิ่มระยะนี้เป็น android:endMargin
ของ CarUiRecyclerView ด้วยเพื่อให้มีระยะเท่ากันในส่วนเริ่มต้นและส่วนสิ้นสุดของข้อมูล หากนักพัฒนาแอปใช้ enableDivider=true
ไว้ OEM จะควบคุมลักษณะที่ตัวแบ่งควรปรากฏได้
มิติข้อมูลที่ปรับสำหรับ CarUiRecyclerView
ได้มีดังนี้
<dimen name="car_ui_recyclerview_divider_height">0dp</dimen> <dimen name="car_ui_recyclerview_divider_start_margin">0dp</dimen> <dimen name="car_ui_recyclerview_divider_end_margin">0dp</dimen> <dimen name="car_ui_recyclerview_divider_top_margin">0dp</dimen> <dimen name="car_ui_recyclerview_divider_bottom_margin">0dp</dimen>
แถบเลื่อน
ไฟล์เลย์เอาต์สำหรับแถบเลื่อน CarUiRV
จะกำหนดไว้ใน car_ui_recyclerview_scrollbar.xml
โดยจะมีมุมมองทั้งหมด 4 มุมมองที่กําหนดภายในมุมมอง
ยอดดู | |
---|---|
Car_ui_scrollbar_page_up |
กำหนดปุ่มขึ้นของแถบเลื่อน |
Car_ui_scrollbar_page_down |
กำหนดปุ่มลงของแถบเลื่อน |
Car_ui_scrollbar_thumb |
ระบบจะคำนวณความสูงแบบไดนามิกโดยขึ้นอยู่กับจำนวนรายการในรายการในมุมมอง Recycler (RV) |
Car_ui_scrollbar_track |
ความสูงทั้งหมดที่กำหนดขอบเขตที่นิ้วหัวแม่มือจะเลื่อน |
OEM ควรวางซ้อนไฟล์เลย์เอาต์นี้เพื่อปรับแต่งแถบเลื่อน คุณควรวางมุมมองแทร็กอย่างระมัดระวังเนื่องจากจะเป็นการกำหนดขอบเขตที่หัวโฟกัสจะเลื่อนไป ระบบจะคำนวณความสูงของภาพขนาดย่อแบบไดนามิกตามรายการใน RV และความสูงของวิวเฮลเดอร์
เลย์เอาต์นี้จะรวมอยู่ในคอนเทนเนอร์ CarUiRV
car_ui_recycler_view.xml
เท่านั้นหาก car_ui_scrollbar_enable
เป็น true
มิติข้อมูลอื่นๆ ที่ปรับแถบเลื่อนได้ ได้แก่
<dimen name="car_ui_scrollbar_container_w>idth"@dimen/car<_ui_ma>rgi<n/dimen dimen name="car_ui_scrollb>ar_button_size"@dimen/car_u<i_touc>h_t<arget_width/dimen dimen name="car_>ui_<scroll>bar<_thumb_width"7dp/dimen dimen name=">;car<_ui_sc>rol<lbar_separator_margin"16dp/dime>n dimen name="<;car_u>i_s<crollbar_margin"@dimen/car_ui_margin/>dimen< dim>en n<ame="car_ui_scrollbar_thumb_radius"100dp/dimen item nam>e=&<quot;>car<_ui_button_disabled_alpha" format="float" type="dimen">;0.2/<item > i<tem name="car_ui_scrollbar_milliseconds_per_inch" format="float">; ty<pe=&q>uot<;dimen"150.0/item item name="car_ui_scrollbar_deceleration_times_divisor&qu>ot;< form>at=&<quot;float" type="dimen"0.45>/it<em i>tem< name="car_ui_scrollbar_decelerate_i>nte<rpolat>or_factor" format="float" type="dimen"1.8/item dimen name="car_ui_scrollbar_padding_start"0dp/dimen dimen name="car_ui_scrollbar_padding_end"0dp/dimen
ตัวอย่าง
เช่น หากต้องการนำลูกศรขึ้นและลงมาไว้ด้วยกันที่ด้านล่างของหน้าจอ ให้ทำดังนี้
- การวางซ้อน
car_ui_recyclerview_scrollbar.xml
<?xml version="1.0" encodin>g<="utf-8"? RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/car_ui_margin" android:layout_height="match_pa>rent&q<uot; android:id="@+id/car_ui_scroll_bar" > !-- <View height is dynamically calculated during layout. -- View android:id="@+id/car_ui_scrollbar_thumb" android:layout_width="7dp" android:layout_height="20dp" android:layout_alignParentTop="true" android:layout>_cente<rHorizontal="true" android:background="@drawable/car_ui_recyclerview_scrollbar_thumb"/ View android:id="@+id/car_ui_scrollbar_track" android:layout_width="10dp" android:layout_height="match_parent">; < android:layout_marginTop="10dp" android:layout_centerHorizontal="true" android:layout_above="@+id/car_ui_scrollbar_page_up"/ ImageView android:id="@+id/car_ui_scrollbar_page_up" android:layout_width="76dp" android:layout_height="76dp" android:focusable="false" android:hapticFeedbackEnabl>ed=&qu<ot;false" android:src="@drawable/car_ui_recyclerview_ic_up" android:scaleType="centerInside" android:layout_centerHorizontal="true" android:layout_above="@+id/car_ui_scrollbar_page_down"/ ImageView android:id="@+id/car_ui_scrollbar_page_down" android:layout_width="76dp" android:layou>t<_height="7>6dp" android:focusable="false" android:hapticFeedbackEnabled="false" android:src="@drawable/car_ui_recyclerview_ic_down" android:scaleType="centerInside" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true"/ /RelativeLayout
- หากต้องการกำหนดทรัพยากรที่จะวางซ้อนโดย RRO ให้เพิ่ม
Overlays.xml
ดังนี้<overlay> <item target="id/car_ui_scroll_bar" value="@id/car_>ui_sc<roll_bar"/ item target="id/car_ui_scrollbar_thumb" value>=&quo<t;@id/car_ui_scrollbar_thumb"/ item target="id/car_ui_scrollb>ar_tr<ack" value="@id/car_ui_scrollbar_track"/ item target="i>d/car<_ui_scrollbar_page_up" value="@id/car_ui_scrollbar_page_up"/ ite>m tar<get="id/car_ui_scrollbar_page_down" value="@id/car_ui_scrollbar_page_down"/ > < item t>arget="layout/car_ui_recyclerview_scrollbar" value="@layout/car_ui_recyclerview_scrollbar"/ /overlay
- หากต้องอัปเดตรูปภาพที่วาดได้ของ "ขึ้น" "ลง" หรือ "นิ้ว" ก็ควรวางซ้อนไว้ด้วย
- หากมีการใช้ทรัพยากรใหม่ในแพ็กเกจ RRO ที่ไม่มีอยู่แล้ว คุณควรกำหนดทรัพยากรเหล่านี้ใน RRO APK ที่คุณสร้างขึ้นด้วย