CarUiRecyclerView को पसंद के मुताबिक बनाना

इस पेज पर,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_enabletrue हो.

स्क्रोलबार के लिए अडजस्ट किए जा सकने वाले अन्य डाइमेंशन:

  <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>

उदाहरण

उदाहरण के लिए, स्क्रीन पर सबसे नीचे, ऊपर और नीचे वाले ऐरो को एक साथ लाने के लिए:

  1. ओवरले 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>
  2. आरआरओ से ओवरले किए जाने वाले संसाधनों को तय करने के लिए, 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>
  3. अगर किसी अप, डाउन या थंब ड्रॉबल को अपडेट करना ज़रूरी है, तो उन्हें भी ओवरले किया जाना चाहिए.
  4. अगर आरआरओ पैकेज में ऐसे नए संसाधनों का इस्तेमाल किया जाता है जो पहले से मौजूद नहीं हैं, तो आपके बनाए गए आरआरओ APK में भी इन संसाधनों की जानकारी दी जानी चाहिए.