آموزش ساخت SwipeRefreshLayout برای RecyclerView در اندروید
رفرش کردن لیست با کشیدن بالا به پایین
بدون شک از اپلیکیشن Gmail در اندروید استفاده کرده و متوجه این موضوع شدهاید که اگر در ابتدای لیست ایمیلها قرار داشته باشید، با لمس قسمت بالای لیست به پایین، یک لودینگ دایرهای را طبق تصویر مشاهده خواهید کرد؛ سپس اگر ایمیل جدیدی وجود داشته باشد، به ابتدای لیست اضافه میشود!
این لودینگ درواقع همان چیزیست که در این مطلب آموزشی قصد داریم تا روش ساخت آن را توضیح دهیم؛ اما نگران نباشید! چرا که این قابلیت یکی از قابلیتهای خود اندروید بوده و نیازی به نوشتن کدهای پیچیده نیست. (البته برای کار کردن در دستگاههای قدیمی مجبوریم از اندروید ساپورت استفاده کنیم)
آموزش انجام کار
در اینجا از android.support.v4 بایستی استفاده کنیم. بنابراین نسخهای از آن را در Gradle خود اضافه کنید:
implementation 'com.android.support:support-v4:27.1.1'
سپس به Layout خود رفته و RecylerView را درون یک SwipeRefreshLayout قرار دهید:
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipeRefreshLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout>
حالا در سمت جاوا، کد زیر را بنویسید:
SwipeRefreshLayout swipe = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout); swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { } });
متد onRefresh زمانی اجرا میشود که کاربر عمل لودینگ را با کشیدن دست خود از بالا به پایین انجام داده و آیکون لودینگ نمایش داده شود! بنابراین، شما در داخل این متد باید اطلاعات را بگیرید.
مخفی کردن و ظاهر کردن رفرش
طبیعتا پس از اتمام رفرش شدن و لود شدن اطلاعات، بایستی آیکون را مخفی کنید! پس با استفاده از دستور زیر میتوانید این کار را انجام دهید:
swipe.setRefreshing(false);
با ارسال مقدار true به داخل این متد، آیکون رفرش نمایش داده شده و با ارسال false، آیکون رفرش مخفی خواهد شد.
تنظیم رنگها
برای تغییر رنگها علاوه بر استایل، میتوانید از متد زیر نیز استفاده کنید:
swipe.setColorSchemeResources(R.color.colorPrimary, android.R.color.holo_green_dark, android.R.color.holo_orange_dark, android.R.color.holo_blue_dark);
دادا از کدوم سایت کپی کردی اینو؟ وسط کد رفتی یهو سراغ یه مطلب دیگه
ولی به صورت کلی سایت خوبی داری! نکات خوبی از دیروز محصوصا درزمینه برادکسترسیور ها یاد گرفتم،موفق باشی
اگه منظورتون از وسط کد، کلاس ShimmerRecyclerView هستش دلیلش به خاطر این بود که کدهای این پست رو تو یه پروژهای که روش کار میکردم تست کرده بودم و طبیعتا به خاطر عجله داشتن اشتباه قرار دادم. به زودی اصلاح میشه
سپاس فراوان از همراهی و اطلاع رسانیتون. موفق و پیروز باشید.