Wear OS ডিভাইসগুলিতে তালিকা ব্যবহারকারীদের একাধিক বিকল্পের মধ্য থেকে সহজেই কোনো একটি আইটেম বেছে নিতে সাহায্য করে।
Wearable UI লাইব্রেরিতে WearableRecyclerView ক্লাসটি অন্তর্ভুক্ত রয়েছে, যা পরিধানযোগ্য ডিভাইসের জন্য অপ্টিমাইজ করা তালিকা তৈরির একটি RecyclerView ইমপ্লিমেন্টেশন। একটি নতুন WearableRecyclerView কন্টেইনার তৈরি করে আপনি আপনার পরিধানযোগ্য অ্যাপে এই ইন্টারফেসটি ব্যবহার করতে পারেন।
অ্যাপ্লিকেশন লঞ্চার বা কন্ট্যাক্ট লিস্টের মতো সাধারণ আইটেমের একটি দীর্ঘ তালিকার জন্য WearableRecyclerView ব্যবহার করুন। প্রতিটি আইটেমের একটি সংক্ষিপ্ত স্ট্রিং এবং একটি সংশ্লিষ্ট আইকন থাকতে পারে। বিকল্পভাবে, প্রতিটি আইটেমের কেবল একটি স্ট্রিং বা একটি আইকনও থাকতে পারে।
দ্রষ্টব্য: জটিল বিন্যাস পরিহার করুন। ব্যবহারকারীদের কোনো একটি আইটেম কী, তা বোঝার জন্য শুধু সেদিকে এক ঝলক তাকালেই চলবে, বিশেষ করে পরিধানযোগ্য ডিভাইসের সীমিত স্ক্রিন আকারের কথা মাথায় রেখে।
বিদ্যমান RecyclerView ক্লাসকে এক্সটেন্ড করার মাধ্যমে, WearableRecyclerView API-গুলো ডিফল্টরূপে একটি সোজা তালিকায় উল্লম্বভাবে স্ক্রলযোগ্য আইটেম প্রদর্শন করে। এছাড়াও, আপনি আপনার ওয়্যারেবল অ্যাপগুলোতে কার্ভড লেআউট এবং সার্কুলার স্ক্রলিং জেসচার বেছে নেওয়ার জন্য WearableRecyclerView API-গুলো ব্যবহার করতে পারেন।

চিত্র ১. Wear OS-এর ডিফল্ট তালিকা দৃশ্য।
এই নির্দেশিকাটি আপনাকে দেখাবে কীভাবে আপনার Wear OS অ্যাপে তালিকা তৈরি করতে WearableRecyclerView ক্লাস ব্যবহার করতে হয়, কীভাবে আপনার স্ক্রোলযোগ্য আইটেমগুলির জন্য একটি বক্রাকার লেআউট বেছে নিতে হয় এবং স্ক্রোল করার সময় কীভাবে চাইল্ড আইটেমগুলির চেহারা কাস্টমাইজ করতে হয়।
XML ব্যবহার করে একটি অ্যাক্টিভিটিতে WearableRecyclerView যোগ করুন
নিম্নলিখিত লেআউটটি একটি অ্যাক্টিভিটিতে একটি WearableRecyclerView যোগ করে:
<androidx.wear.widget.WearableRecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/recycler_launcher_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" />
নিম্নলিখিত উদাহরণটি একটি অ্যাক্টিভিটিতে WearableRecyclerView এর প্রয়োগ দেখায়:
কোটলিন
class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } ... }
জাভা
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } ... }
একটি বক্র বিন্যাস তৈরি করুন

আপনার পরিধানযোগ্য অ্যাপে স্ক্রোলযোগ্য আইটেমগুলির জন্য একটি বক্রাকার লেআউট তৈরি করতে, নিম্নলিখিতগুলি করুন:
- প্রাসঙ্গিক XML লেআউটে আপনার প্রধান কন্টেইনার হিসেবে
WearableRecyclerViewব্যবহার করুন। -
setEdgeItemsCenteringEnabled(boolean)মেথডটির মানtrueসেট করুন। এটি তালিকার প্রথম এবং শেষ আইটেমগুলোকে স্ক্রিনে উল্লম্বভাবে কেন্দ্রে স্থাপন করে। - স্ক্রিনে আইটেমগুলোর লেআউট সেট করতে
WearableRecyclerView.setLayoutManager()মেথডটি ব্যবহার করুন।
কোটলিন
wearableRecyclerView.apply { // To align the edge children (first and last) with the center of the screen. isEdgeItemsCenteringEnabled = true ... layoutManager = WearableLinearLayoutManager(this@MainActivity) }
জাভা
// To align the edge children (first and last) with the center of the screen. wearableRecyclerView.setEdgeItemsCenteringEnabled(true); ... wearableRecyclerView.setLayoutManager( new WearableLinearLayoutManager(this));
স্ক্রোল করার সময় আপনার অ্যাপের চাইল্ড আইটেমগুলোর চেহারা কাস্টমাইজ করার জন্য যদি নির্দিষ্ট কোনো প্রয়োজন থাকে—যেমন, আইটেমগুলো কেন্দ্র থেকে দূরে স্ক্রোল করার সময় আইকন ও টেক্সটের আকার পরিবর্তন করা—তাহলে WearableLinearLayoutManager.LayoutCallback ক্লাসটি এক্সটেন্ড করুন এবং onLayoutFinished মেথডটি ওভাররাইড করুন।
নিম্নলিখিত কোড স্নিপেটগুলিতে WearableLinearLayoutManager.LayoutCallback ক্লাসটি এক্সটেন্ড করে কেন্দ্র থেকে দূরে আইটেমগুলির স্ক্রোলিং কাস্টমাইজ করার একটি উদাহরণ দেখানো হয়েছে:
কোটলিন
/** How much icons should scale, at most. */ private const val MAX_ICON_PROGRESS = 0.65f class CustomScrollingLayoutCallback : WearableLinearLayoutManager.LayoutCallback() { private var progressToCenter: Float = 0f override fun onLayoutFinished(child: View, parent: RecyclerView) { child.apply { // Figure out % progress from top to bottom. val centerOffset = height.toFloat() / 2.0f / parent.height.toFloat() val yRelativeToCenterOffset = y / parent.height + centerOffset // Normalize for center. progressToCenter = Math.abs(0.5f - yRelativeToCenterOffset) // Adjust to the maximum scale. progressToCenter = Math.min(progressToCenter, MAX_ICON_PROGRESS) scaleX = 1 - progressToCenter scaleY = 1 - progressToCenter } } }
জাভা
public class CustomScrollingLayoutCallback extends WearableLinearLayoutManager.LayoutCallback { /** How much icons should scale, at most. */ private static final float MAX_ICON_PROGRESS = 0.65f; private float progressToCenter; @Override public void onLayoutFinished(View child, RecyclerView parent) { // Figure out % progress from top to bottom. float centerOffset = ((float) child.getHeight() / 2.0f) / (float) parent.getHeight(); float yRelativeToCenterOffset = (child.getY() / parent.getHeight()) + centerOffset; // Normalize for center. progressToCenter = Math.abs(0.5f - yRelativeToCenterOffset); // Adjust to the maximum scale. progressToCenter = Math.min(progressToCenter, MAX_ICON_PROGRESS); child.setScaleX(1 - progressToCenter); child.setScaleY(1 - progressToCenter); } }
কোটলিন
wearableRecyclerView.layoutManager = WearableLinearLayoutManager(this, CustomScrollingLayoutCallback())
জাভা
CustomScrollingLayoutCallback customScrollingLayoutCallback = new CustomScrollingLayoutCallback(); wearableRecyclerView.setLayoutManager( new WearableLinearLayoutManager(this, customScrollingLayoutCallback));
