דף זה מתאר את תהליך ההתאמה האישית של CarUiRecyclerView
ופס הגלילה.
דרישות מוקדמות
דף זה מניח ידע על שכבת-על של משאבי ריצה (RRO) יעד APK. למידע נוסף, ראה התאמה אישית של אפליקציות .
אודות CarUiRecyclerView
כאשר car_ui_scrollbar_enable
מוגדר כ- false
ב- bools.xml
, CarUiRecyclerView
אינו מנפח את סרגל הגלילה. עם זאת, רק ה- androidx.recyclerview
מנופח עם סגנונות הניתנים להתאמה אישית כפי שמוגדר להלן. כאשר car_ui_scrollbar_enable
מוגדר כ- true
, CarUiRecyclerView
מנפח את המיכל עם פס הגלילה המותקן בתוכו. מאוחר יותר androidx.recyclerview
נוסף גם בתוך אותו מיכל.
CarUiRecyclerView
יכול לקחת כל מתאם כדי להציג את הנתונים. אבל ההמלצה היא להשתמש CarUiListItemAdapter
שבו המארז lib מגדיר את הפריסה של listItems ולכן ניתן להתאים אישית על ידי יצרני 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
. בסך הכל, ארבע התצוגות האלה מוגדרות בתוך התצוגה:
צפיות | |
---|---|
Car_ui_scrollbar_page_up | מגדיר את הלחצן למעלה של סרגל הגלילה. |
Car_ui_scrollbar_page_down | מגדיר את הלחצן למטה של סרגל הגלילה. |
Car_ui_scrollbar_thumb | הגובה מחושב באופן דינמי בהתאם למספר פריטי הרשימה ב-Recycler View (RV). |
Car_ui_scrollbar_track | גובה כולל המגדיר את הגבולות שבהם האגודל ינוע. |
יצרני OEM צריכים לכסות קובץ פריסה זה כדי להתאים אישית את סרגל הגלילה. יש למקם את תצוגת המסלול בזהירות, שכן היא תגדיר את הגבולות שבהם האגודל ינוע. גובה האגודל מחושב באופן דינמי על סמך פריטי הרשימה ב-RV וגובה הצופים.
פריסה זו כלולה במאגר CarUiRV
car_ui_recycler_view.xml
רק אם car_ui_scrollbar_enable
הוא 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 שאתה יוצר.