בדף הזה מתואר התהליך של התאמה אישית של CarUiRecyclerView
ושל סרגל הגלילה.
דרישות מוקדמות
בדף הזה נדרש ידע על קובץ APK יעד של שכבת-על של משאבים בסביבת זמן ריצה (RRO). מידע נוסף זמין במאמר התאמה אישית של אפליקציות.
מידע על CarUiRecyclerView
כשהערך של car_ui_scrollbar_enable
מוגדר כ-false
ב-bools.xml
, CarUiRecyclerView
לא מרחיב את פס ההזזה. עם זאת, רק השדה androidx.recyclerview
מנופח בסגנונות שניתן להתאים אישית, כפי שמוגדר בהמשך.
כשהערך של car_ui_scrollbar_enable
מוגדר כ-true
, ה-CarUiRecyclerView
מרחיב את המאגר עם סרגל הגלילה שמותקן בו. מאוחר יותר, גם androidx.recyclerview
מתווסף לאותו מאגר.
CarUiRecyclerView
יכול לקבל כל מתאם כדי להציג את הנתונים. עם זאת, מומלץ להשתמש ב-CarUiListItemAdapter
, שבו הספרייה של המארז מגדירה את הפריסה של listItems, ולכן יצרני ציוד מקורי יכולים להתאים אותה אישית. ההתאמה האישית של ListItems מוגדרת בקטע אפשרויות התאמה אישית של CarUiListItem.
כברירת מחדל, car_ui_scrollbar_margin
משמש כרוחב התצוגה של פס ההזזה.
השוליים האלה מתווספים גם כ-android:endMargin
של CarUiRecyclerView, כך שיש שוליים שווים בתחילת הנתונים ובסוף הנתונים. אם המפתח השתמש ב-enableDivider=true
, יצרן הציוד המקורי יכול לקבוע איך המחיצות יופיעו.
המאפיינים שאפשר לשנות ב-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
scrollbar מוגדר ב-car_ui_recyclerview_scrollbar.xml
. סה"כ, ארבע התצוגות הבאות מוגדרות בתצוגה:
צפיות | |
---|---|
Car_ui_scrollbar_page_up |
הגדרת הלחצן למעלה בסרגל הגלילה. |
Car_ui_scrollbar_page_down |
מגדיר את לחצן למטה בסרגל הגלילה. |
Car_ui_scrollbar_thumb |
הגובה מחושב באופן דינמי בהתאם למספר הפריטים ברשימה בתצוגת Recycler (RV). |
Car_ui_scrollbar_track |
הגובה הכולל שמגדיר את הגבולות שבהם האגודל יזוז. |
יצרני ציוד מקורי צריכים להוסיף שכבה לקובץ הפריסה הזה כדי להתאים אישית את פס ההזזה. חשוב למקם את תצוגת הטראק בזהירות, כי היא תגדיר את הגבולות שבהם האגודל יזוז. גובה התמונה הממוזערת מחושב באופן דינמי על סמך הפריטים ברשימה ב-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 במשאבים חדשים שעדיין לא קיימים, צריך להגדיר את המשאבים האלה גם בקובץ ה-APK של ה-RRO שיצרתם.