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