এই পৃষ্ঠাটি CarUiRecyclerView
এবং স্ক্রোল বার কাস্টমাইজ করার প্রক্রিয়া বর্ণনা করে।
পূর্বশর্ত
এই পৃষ্ঠাটি রানটাইম রিসোর্স ওভারলে (RRO) টার্গেট APK এর জ্ঞান অনুমান করে। আরও জানতে, অ্যাপগুলি কাস্টমাইজ করুন দেখুন।
CarUiRecyclerView সম্পর্কে
যখন car_ui_scrollbar_enable
bools.xml
এ false
সেট করা হয়, CarUiRecyclerView
স্ক্রলবারকে স্ফীত করে না। তাতে বলা হয়েছে, শুধুমাত্র androidx.recyclerview
নিচের সংজ্ঞায়িত মত কাস্টমাইজযোগ্য শৈলীর সাথে স্ফীত। যখন car_ui_scrollbar_enable
true
সেট করা হয়, তখন CarUiRecyclerView
এর মধ্যে ইনস্টল করা স্ক্রলবার দিয়ে কন্টেইনারটিকে ফুলিয়ে দেয়। পরবর্তীতে androidx.recyclerview
একই পাত্রে যোগ করা হয়।
CarUiRecyclerView
ডেটা প্রদর্শনের জন্য যেকোনো অ্যাডাপ্টার নিতে পারে। কিন্তু সুপারিশ হল CarUiListItemAdapter
ব্যবহার করা যেখানে চ্যাসিস lib তালিকা আইটেমগুলির জন্য বিন্যাস সংজ্ঞায়িত করে এবং তাই OEM দ্বারা কাস্টমাইজ করা যেতে পারে। ListItems-এর জন্য কাস্টমাইজেশন CarUiListItem-এর জন্য কাস্টমাইজেশন বিকল্পগুলিতে সংজ্ঞায়িত করা হয়েছে।
ডিফল্টরূপে, car_ui_scrollbar_margin
স্ক্রলবার ভিউয়ের প্রস্থ হিসাবে ব্যবহৃত হয়। এই মার্জিনটিকে CarUiRecyclerView-এর android:endMargin
হিসাবেও যোগ করা হয়েছে যাতে ডেটার শুরু এবং শেষে সমান মার্জিন থাকে। ডেভেলপার যদি enableDivider=true
ব্যবহার করে থাকে তাহলে ই এম নিয়ন্ত্রণ করতে পারে কিভাবে ডিভাইডারগুলি প্রদর্শিত হবে। 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 | মোট উচ্চতা যা সীমানা নির্ধারণ করে যেখানে থাম্বটি সরবে। |
স্ক্রলবার কাস্টমাইজ করার জন্য 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>
- 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-এও সংজ্ঞায়িত করা উচিত।