هم اکنون عضو شوید

ورود

فراموشی گذرواژه

گذروازه خود را فراموش کردید ؟

ورود

عضو شوید

با عضویت در سایت از امکانات فوق العاده بهرمنده خواهید شد.

دوره آموزش برنامه نویسی اندروید
آموزش RecyclerView بی پایان + ProgressBar در برنامه نویسی اندروید

آموزش RecyclerView بی پایان + ProgressBar در برنامه نویسی اندروید

سلام دوستان امیدوارم حالتان خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش RecyclerView بی پایان + ProgressBar در برنامه نویسی اندروید می پردازیم قبلتر آموزش RecyclerView بی پایان یا endless قرار داده بودیم ولی امروز کمی آن را تغییر دادیم تا بیشتر کاربردی شود. در ادامه می توانید پیش نمایشی از آن را مشاهده کنید با ما همراه باشید .

 

باید یکسری کتاب خانه را به پروژه اضافه کنید.

وارد فایل Build.gradle از نوع Module شده سپس در بخش dependencies خط های زیر را اضافه کنید.

پروژه را sync کنید.

یک فایل در layout خود به نام item_recycler_view_row.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

کد شکل ظاهری آیتم ها را تنظیم می کند (یعنی آیتم ها به این شکل خواهند بود).

خب باید یک فایل به نام item_loading.xml ایجاد کنیم و کدهای زیر را در آن قرار دهیم.

در بالا یک layout قرار گرفته است که در آن یک progressbar قرار گرفته است در زیر آخرین cardview ما inflate می شود و داده های جدید لود می شوند.

در activity_main.xml که layout اصلی ما است کدهای زیر را قرار دهید.

در بالا RecyclerView برای Render کردن آیتم ها استفاده می شود.

خب باید یک کلاس به نام Contact.java ایجاد کرده و کد های زیر را در آن قرار دهید.

کد بالا به getter و setter معروف است.

یک Interface به نام OnLoadMoreListener ایجاد کرده و کدهای زیر را در آن قرار دهید.

یک کلاس جاوا به نام ContactAdapter.java ایجاد کرده و کدهای زیر را در آن قرار دهید.

کد بالا بعد از گرفتن داده ها آنها را در RecyclerView قرار می دهد و load more را نمایش می دهد.

حالا وارد فایل MainActivity.java شده و کدهای زیر را قرار دهید.

در بالا یکسری داده sample ابتدا لود شده سپس بعد از اینکه scroll کنید یک ProgresBar نمایش داده می شود و دوباره یکسری داده sample لود می شود.

 

 

این آموزش هم به پایان رسید.

 

موفق و پیروز باشید.

 

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

با زبان های برنامه نویسی C# , Java , Php به صورت تخصصی کار کردم و بیشتر وقتم رو در برنامه نویسی می گذرونم علاقه زیادی به ساخت اپلیکیشن اندروید دارم.

نظرها ( ۱۴ )

  1. سارا
    ۳۰, شهریور , ۱۳۹۶ در ۱۲:۰۳ ق.ظ

    سلام ممنون از آموزش خوبتون
    بی زحمت میشه رویداد onclick رو توی adapter براش بنویسید

    با تشکر

  2. قاسم
    ۱۹, دی , ۱۳۹۶ در ۲:۴۵ ب.ظ

    سلام مهندس خسته نباشید این آموزش بسیار عالی است ولی بنده فکر میکنم سرعت لود ردیف های جدید کم است و طول میکشد راهی ندارد سریعتر شود ؟

  3. عباس
    ۲۲, خرداد , ۱۳۹۷ در ۱۲:۵۵ ق.ظ

    سلام

    من ی سوال داشتم ، اگه کمکم کنید خیلی ممنون میشم.

    من برای این آموزش در بخش row یک checkbox قرار دادم ، تا بتونم آیتم های که نمایش داده شده را یکی یکی به دلخواه انتخاب کنم ، اما بعد انتخاب رندم هر کدوم ، ۱۰ تا ایتم بعدی و ۱۰ تا آیتم قبلی آن هم انتخاب میشه ، یعنی اگر ۴۰ آیتم داشته باشیم ، با انتخاب هر کدوم ، ۳ تای دیگه هم فعال می شه ، چکار کنم این اتفاق نیافته؟
    ممنون میشم ، من هر لحظه سر می زنم و منتظر پاسخ شما هستم.

    با احترام

  4. Abbas
    ۲۲, خرداد , ۱۳۹۷ در ۸:۳۰ ق.ظ

    سلام و درود بی پایان
    item_recycler_view_row.xml
    در لایوت بالا تعریف کرده ام

  5. mohammad
    ۱۹, شهریور , ۱۳۹۷ در ۳:۴۳ ب.ظ

    سلام ممنون از آموزش خوبتون
    من طبق آموزش پیش رفتم و یک فرگمنت ساختم و از Endless RecyclerView توش استفاده کردم جواب گرفتم همه چی درست بود ، اما جای دیگه که تب ساختم توی فرگمنت های تب لایوت وقتی استفاده کردم جای اینکه یک Progressbar نشون داده بشه گاهی ۲ تا نشون داده میشه !!
    اسکرین شات برنامه : https://drive.google.com/file/d/1rQXqgVRMl-xEjilbdq40TAEHpyDt16H4/view

    • محمد حسین جعفری پور
      ۲۱, شهریور , ۱۳۹۷ در ۳:۴۷ ق.ظ

      سلام و درود
      به احتمال زیاد شما به ازای هر بخش یک progressbar در نظر گرفتید که اشتباه است باید یک progressbar داشته باشید.

      موفق باشید.

  6. mohammad
    ۲۱, شهریور , ۱۳۹۷ در ۲:۵۶ ب.ظ

    سلام دوباره
    من یک فرگمنت دارم که در تب لایوت گفتم به تعداد تب هام از این فرگمنت ساخته بشه و داده ها رو از اکتیویتی به هر فرگمنت پاس دادم و تو ریسایکلر نشون میدم ، حالا طبق آموزش من فقط یک progressbar تعریف کردم ولی همونطور که تو اسکرین شاتم نشون دادم ولی چندین بار نشون میده و گاهی داده های بعدی که نشون داده میشن تو ریسایکلر پراگرس بار محو نمیشه و میمونه. ممنون میشم راهنماییم کنید.

  7. مرتضی
    ۵, اردیبهشت , ۱۳۹۸ در ۶:۴۳ ب.ظ

    سلام. خیلی ممنونم بابت آموزش خوبتون.
    من میخوام از این آموزش EndLessRecyclerView داخل رتروفیت استفاده کنم و داده های جدید رو از سمت سرور بگیرم. من آداپتور ریسایکلرویو رو مثل شما پیاده سازی کردم. فقط مشکلم در متود زیر هست و نمیدونم چه تغییراتی باید بدم تا بتونم با رتروفیت ازش استفاده کنم.contactAdapter.setOnLoadMoreListener
    منون میشم راهنمایی کنید.

  8. امید
    ۱۸, اردیبهشت , ۱۳۹۸ در ۹:۵۸ ب.ظ

    سلام
    ممنون بایت آموزشتون .
    اگه ی لیست بلند ۴۰۰ آیتم داشته باشیم چطور میشه مثلا ۲۰ تا ۲۰ لودش کنم؟
    هر بار که پروگرس میاد ۲۰ ۳۰ تا از لیست رو ادد کنه.
    ن اینکه اطلاعات جدید لود شه.

    ممنون میشم اگه راهنمایی کنید.

  9. ۱۸, اردیبهشت , ۱۳۹۸ در ۱۰:۰۳ ب.ظ

    سلام و درود
    ممنون بابت آموزش تون
    اگه یک لیست بلند ۴۰۰ آیتمی داشته باشیم چطور میشه که هر بار که پروگرس میاد ۲۰ ۳۰ تا از لیستم رو لود کنه ؟

    ممنون میشم راهنمایی کنید.