آپدیت لیست با SwipeRefreshLayout

قبلا داشتن یه لیستی که بتونید با کشیدنش به پایین آپدیتش کنید کار خیلی راحتی نبود. مجبور بودید از کتابخونه‌هایی مثل SwipeToRefresh استفاده کنید و با مشکلات احتمالی سر و کله بزنید.

مدتیه که گوگل کلاس SwipeRefreshLayout رو معرفی کرده و با این کلاس پیاده‌سازی این مکانیزم رو برامون حسابی آسون کرده. با هم پیش میریم و تو دو قدم طرز استفاده از این کلاس رو میبینیم. برای داشتن SwipeRefreshView تنها کافیه کتابخونه support ورژن ۴ رو داشته باشید. این کتابخونه رو میتونید با اضافه کردن خط زیر به dependecyهای gradle، به پروژتون اضافه کنید:

dependencies {
  
    compile 'com.android.support:appcompat-v7:22.0.0'
}

 

خب فرض میکنیم که ما قبلا یک RecyclerView داشتیم که توش دیتایی رو از وب سرویس میگرفتیم و نشون میدادیم (در مورد RecyclerView اینجا نوشتم). حالا میخوایم کاری کنیم که کاربر بتونه با Swipe کردن این لیست،‌ اون رو آپدیت کنه و اطلاعات جدیدتر رو هم ببینه. برای اینکار لازمه RecyclerViewمون رو بندازیم داخل یک SwipeRefreshLayout. مثل این:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipe"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/resyclerview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"

            />

    </android.support.v4.widget.SwipeRefreshLayout>

</FrameLayout>

تقریبا تموم شد! باورتون میشه؟ الان اگر اپلیکیشن رو اجرا کنید میبینید که با پایین کشیدن لیست یک دایره به دور خودش میچرخه و منتظره لیست رو آپدیت کنه. شما تنها کاری که باید بکنید اینه که بگید بعد از اینکه لیست Swipe شد، چجوری باید آپدیت شه. این کار رو به شکل زیر انجام میدیم:

public class MyFragment extends Fragment {


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
       .
       .
       .
       .
       . 

        vSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                
                //Download data from net and update list 
                 vSwipeRefreshLayout.setRefreshing(false);

            }
        });

        return view;
    }


}

کار اصلی رو در onRefresh انجام میدیم. برای مثال میایم دیتایی رو از اینترنت دانلود میکنیم و لیست رو آپدیت میکنیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

android application Google I/O HomeBrew ImageMagick Material Design mobile PogressBar RecyclerView splash TEDxKish ux آموزش اندروید الوین تافلر اندروید اپلیکیشن برنامه نویسی برنامه نویسی اندروید برنامه‌نویسی برنامه‌نویسی اندروید تداکس کیش تعمیر تغییر سایز عکس با ترمینال خلاصه کتاب دانش داده دانشگاه دانشگاه ایده‌آل دزد دیتا ساینس رشته مهندسی کامپیوتر ریکامندرسیستم سیستم‌های توصیه‌گر فری‌لنس لپتاپ متریال دیزاین معرفی کتاب موج سوم نوار پیشرفت همایش هوش مصنوعی ُجزیره کیش کار کسب و کار یادگیری عمیق یادگیری ماشین