সোয়াইপ-টু-রিফ্রেশ ইউজার ইন্টারফেস প্যাটার্নটি সম্পূর্ণরূপে SwipeRefreshLayout উইজেটের মধ্যে প্রয়োগ করা হয়, যা ভার্টিকাল সোয়াইপ শনাক্ত করে, একটি স্বতন্ত্র প্রোগ্রেস বার প্রদর্শন করে এবং আপনার অ্যাপের কলব্যাক মেথডগুলোকে ট্রিগার করে। এই আচরণটি সক্রিয় করতে, উইজেটটিকে আপনার লেআউট ফাইলে একটি ListView বা GridView এর প্যারেন্ট হিসেবে যুক্ত করুন এবং ব্যবহারকারী সোয়াইপ করলে যে রিফ্রেশ আচরণটি চালু হয়, তা ইমপ্লিমেন্ট করুন।
এই পৃষ্ঠায় দেখানো হয়েছে কীভাবে একটি বিদ্যমান লেআউটে উইজেট যোগ করতে হয়। এতে আরও দেখানো হয়েছে কীভাবে অ্যাকশন বারের ওভারফ্লো এলাকায় একটি রিফ্রেশ অ্যাকশন যোগ করতে হয়, যাতে যেসব ব্যবহারকারী সোয়াইপ জেসচার ব্যবহার করতে পারেন না, তারা একটি বাহ্যিক ডিভাইসের মাধ্যমে ম্যানুয়াল আপডেট চালু করতে পারেন।
SwipeRefreshLayout নির্ভরতা যোগ করুন
আপনার অ্যাপে SwipeRefreshLayout ব্যবহার করতে, আপনার build.gradle ফাইলে নিম্নলিখিত ডিপেন্ডেন্সিটি যোগ করুন:
গ্রুভি
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
কোটলিন
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
SwipeRefreshLayout উইজেট যোগ করুন
বিদ্যমান কোনো অ্যাপে সোয়াইপ-টু-রিফ্রেশ উইজেট যোগ করতে, একটিমাত্র ListView বা GridView এর প্যারেন্ট হিসেবে SwipeRefreshLayout যোগ করুন। SwipeRefreshLayout শুধুমাত্র একটিমাত্র ListView বা GridView চাইল্ড সাপোর্ট করে।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি ListView সম্বলিত বিদ্যমান লেআউট ফাইলে SwipeRefreshLayout উইজেটটি যুক্ত করতে হয়:
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swiperefresh" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
আপনি একটি ListFragment সাথেও SwipeRefreshLayout উইজেটটি ব্যবহার করতে পারেন। যদি লেআউটটিতে "@android:id/list" আইডি-সহ একটি ListView থাকে, তাহলে সোয়াইপ-টু-রিফ্রেশ কার্যকারিতা স্বয়ংক্রিয়ভাবে সমর্থিত হয়। তবে, এইভাবে ListView স্পষ্টভাবে ঘোষণা করলে তা ডিফল্ট ListFragment ভিউ কাঠামোকে বাতিল করে দেয়। আপনি যদি ডিফল্ট ভিউ কাঠামো ব্যবহার করতে চান, তাহলে SwipeRefreshLayout এবং ListFragment এর আচরণের কিছু অংশ ওভাররাইড করুন।
অ্যাকশন বারে একটি রিফ্রেশ অ্যাকশন যোগ করুন।
আপনার অ্যাপের অ্যাকশন বারে একটি রিফ্রেশ অ্যাকশন যোগ করুন, যাতে যেসব ব্যবহারকারী সোয়াইপ জেসচার ব্যবহার করতে পারেন না, তারা ম্যানুয়ালি আপডেট করতে পারেন। উদাহরণস্বরূপ, বিশেষ প্রয়োজন রয়েছে এমন ব্যবহারকারীরা কিবোর্ড এবং ডি-প্যাডের মতো বাহ্যিক ডিভাইস ব্যবহার করে অ্যাকশন বারের অ্যাকশনগুলো চালু করতে পারেন।
রিফ্রেশ অ্যাকশনটিকে বাটনের পরিবর্তে একটি মেনু আইটেম হিসেবে যোগ করতে android:showAsAction=never অ্যাট্রিবিউটটি সেট করুন। আপনি যদি অ্যাকশনটিকে একটি বাটন হিসেবে প্রদর্শন করেন, তাহলে ব্যবহারকারীরা ধরে নিতে পারেন যে রিফ্রেশ বাটনের অ্যাকশনটি সোয়াইপ-টু-রিফ্রেশ অ্যাকশন থেকে ভিন্ন। অ্যাকশন বারে রিফ্রেশ অ্যাকশনটিকে কম সুস্পষ্ট করে রাখলে তা ব্যবহারকারীদের সোয়াইপ জেসচারের মাধ্যমে ম্যানুয়াল আপডেট করতে উৎসাহিত করে, এবং একই সাথে ডি-প্যাড ব্যবহারকারীরা যেখানে এটি খোঁজেন, সেখানেই সহজলভ্য বিকল্পটি বজায় রাখে।
নিম্নলিখিত কোডটিতে দেখানো হয়েছে কিভাবে ওভারফ্লো এরিয়াতে সোয়াইপ-টু-রিফ্রেশ অ্যাকশন যোগ করতে হয়:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_refresh" android:showAsAction="never" android:title="@string/menu_refresh"/> </menu>
