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