इस पेज पर,CarUiRecyclerView
और स्क्रोल को पसंद के मुताबिक बनाने की प्रोसेस के बारे में बताया गया है
बार.
ज़रूरी शर्तें
यह पेज, रनटाइम रिसॉर्स ओवरले (आरआरओ) टारगेट APK की जानकारी का इस्तेमाल करता है. सीखने में ज़्यादा जानने के लिए, ऐप्लिकेशन को पसंद के मुताबिक बनाना देखें.
CarUiRecyclerView के बारे में जानकारी
जब bools.xml
में car_ui_scrollbar_enable
को false
पर सेट किया जाता है,
CarUiRecyclerView
स्क्रोलबार को इनफ़्लेट नहीं करता. हालांकि, सिर्फ़
androidx.recyclerview
को पसंद के मुताबिक बनाई गई स्टाइल के साथ बढ़ा दिया गया है, जैसा कि नीचे बताया गया है.
जब car_ui_scrollbar_enable
को true
पर सेट किया जाता है,
CarUiRecyclerView
इंस्टॉल किए गए स्क्रोलबार के साथ कंटेनर को इनफ़्लेट करता है
शामिल करें. बाद में, उसी में androidx.recyclerview
को भी जोड़ दिया जाता है
कंटेनर.
CarUiRecyclerView
, डेटा दिखाने के लिए किसी भी अडैप्टर का इस्तेमाल कर सकता है. हालांकि,
सुझाव है कि CarUiListItemAdapter
का इस्तेमाल करें जहां चेसिस लिब
सूची आइटम का लेआउट है. इसलिए, इसे OEM अपनी पसंद के मुताबिक बना सकते हैं. Listआइटम के लिए कस्टमाइज़ेशन
कस्टमाइज़ेशन” में तय की गई हैं
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
. कुल मिलाकर, ये चार व्यू
दृश्य में परिभाषित किया गया है:
व्यू | |
---|---|
Car_ui_scrollbar_page_up |
स्क्रोलबार के अप बटन के बारे में बताता है. |
Car_ui_scrollbar_page_down |
स्क्रोलबार के डाउन बटन के बारे में बताता है. |
Car_ui_scrollbar_thumb |
सूची में मौजूद आइटम की संख्या के आधार पर, ऊंचाई की गणना डायनैमिक तौर पर की जाती है रीसाइकलर व्यू (आरवी). |
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>
- आरआरओ के हिसाब से जोड़े जाने वाले संसाधनों के बारे में बताने के लिए,
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 में भी बताया जाना चाहिए.