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