本頁說明自訂CarUiRecyclerView
和捲動的過程
。
必要條件
本頁面假定執行階段資源重疊 (RRO) 目標 APK 的知識。學習 請參閱自訂應用程式。
關於 CarUiRecyclerView
當 bools.xml
中的 car_ui_scrollbar_enable
設為 false
時,
CarUiRecyclerView
不會加載捲軸。即使如此
androidx.recyclerview
以下列自訂樣式加載。
當 car_ui_scrollbar_enable
設為 true
時,
CarUiRecyclerView
會在已安裝捲軸的容器加載容器
在其中建立目錄後來的 androidx.recyclerview
也在相同的資源中新增
都會在 Docker 容器中執行
CarUiRecyclerView
可使用任何轉接器來顯示資料。不過
建議您使用 CarUiListItemAdapter
,讓 Chassis lib 定義
可以由原始設備製造商 (OEM) 自訂 listItems 和版面配置的介面。ListItems 自訂項目
都已定義於「自訂
CarUiListItem 的選項。
根據預設,系統會使用 car_ui_scrollbar_margin
做為捲軸檢視畫面的寬度。
這個邊界也會新增為 CarUiRecyclerView 的 android:endMargin
,因此
兩者都有等量的邊界如果開發人員
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
。總共這四個觀看次數
:
View | |
---|---|
Car_ui_scrollbar_page_up |
定義捲軸的向上按鈕。 |
Car_ui_scrollbar_page_down |
定義捲軸的向下按鈕。 |
Car_ui_scrollbar_thumb |
高度會根據 Recycler View (RV)。 |
Car_ui_scrollbar_track |
定義指標移動邊界的總高度。 |
原始設備製造商 (OEM) 應疊加這個版面配置檔案,以便自訂捲軸。 以便定義大拇指移動的邊界。 滑桿高度是根據休旅車中的清單項目和高度而動態計算 。
此版面配置包含在 CarUiRV
容器中
只有在 car_ui_scrollbar_enable
時才car_ui_recycler_view.xml
為 true
。
其他可依捲軸調整的維度:
<dimen name="car_ui_scrollbar_container_width">@dimen/car_ui_margin</dimen> <dimen name="car_ui_scrollbar_button_size">@dimen/car_ui_touch_target_width</dimen> <dimen name="car_ui_scrollbar_thumb_width">7dp</dimen> <dimen name="car_ui_scrollbar_separator_margin">16dp</dimen> <dimen name="car_ui_scrollbar_margin">@dimen/car_ui_margin</dimen> <dimen name="car_ui_scrollbar_thumb_radius">100dp</dimen> <item name="car_ui_button_disabled_alpha" format="float" type="dimen">0.2</item> <item name="car_ui_scrollbar_milliseconds_per_inch" format="float" type="dimen">150.0</item> <item name="car_ui_scrollbar_deceleration_times_divisor" format="float" type="dimen">0.45</item> <item name="car_ui_scrollbar_decelerate_interpolator_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" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/car_ui_margin" android:layout_height="match_parent" 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_centerHorizontal="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:hapticFeedbackEnabled="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:layout_height="76dp" 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_scroll_bar"/> <item target="id/car_ui_scrollbar_thumb" value="@id/car_ui_scrollbar_thumb"/> <item target="id/car_ui_scrollbar_track" value="@id/car_ui_scrollbar_track"/> <item target="id/car_ui_scrollbar_page_up" value="@id/car_ui_scrollbar_page_up"/> <item target="id/car_ui_scrollbar_page_down" value="@id/car_ui_scrollbar_page_down"/> <item target="layout/car_ui_recyclerview_scrollbar" value="@layout/car_ui_recyclerview_scrollbar"/> </overlay>
- 如要更新「向上」、「向下」或「拇指」的可繪項目,則應一併更新這些可繪項目。
- 如果 RRO 套件中使用了任何新資源,則 請務必於您建立的 RRO APK 中定義這些資源。