ذخیره موقعیت RecyclerView در برنامه نویسی  اندروید

ذخیره موقعیت RecyclerView در برنامه نویسی اندروید

در این مطلب با روش ذخیره موقعیت RecyclerView آشنا خواهیم شد. در این روش شما با استفاده از یک کلاس میتوانید به راحتی موقعیت RecyclerView خود را ذخیره کرده تا کاربر در حین تغییر تب ها یا حتی رفتن به اکتیوتی های دیگر، هنگام برگشت مجددا با ابتدای لیست مواجه نشود!

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

در این مطلب قصد معرفی کلاسی را دارم که با استفاده از آن خواهید توانست موقعیت RecyclerView  را ذخیره کرده تا در دفعات دیگر که کاربر به تب یا به صفحه مورد نظر برمیگردد با ابتدای لیست مواجه نشود.

خوب، بدون توضیح خاصی مراحل توضیح می دم، در نهایت اگر دوستان مشکلی داشتند در قسمت نظرات اعلام بفرمایید تا راهنمایی کنم.

 

ابتدا کلاس زیر را به برنامه خود اضاف نمایید:

https://gist.github.com/FrantisekGazo/a9cc4e18cee42199a287

 

خوب در مرحله بعد اگر لیست ویوی خود را تعریف کرده اید کلاس آن را به نام کلاس لینک بالا تغییر دهید.

برای نمونه در فایل جاوا:

RecyclerView recyclerview

را به:

StatefulRecyclerView recyclerview

و معرفی آن را بصورت زیر انجام دهید:

recyclerView = (StatefulRecyclerView) view.findViewById(R.id.recyclerView)

در فایل xml نیز recyclerview را بصورت زیر تعریف کنید:


 

 

خوب حالا باید موقعیت یا position مربوط به recyclerview را ذخیر کنیم. برای انکار در متدهای onStop، onPause, onDestroy کد زیر را قرار می دهیم.

parce  = recyclerViewl.onSaveInstanceState();

و برای بازگردانی آن نیز در متدهای onResume یا اگر از تب استفاده میکنید در متد setUserVisibleHint کد زیر راقرار دهید

recyclerView.onRestoreInstanceState(HomeActivity.PARCELABLE );

راستی فراموش نکنید که parce رو تعریف کنید. برای تعریف آن کافیه Parcelable parce; رو به کلاس خودتون اضاف کنید.

 

حالا به راحتی می تونید از این قابلیت جذاب برای recyclerview استفاده نمایید.

 

نکته: شما به راحتی میتوانید با تعریف مقادیری موقعیت مورد نظر را در صورت onDestroy شدن نیز ذخیره و مجددا از مکان قبلی که اسکرول شده بود نمایش دهید.

درصورتی که سوالی یا نیاز به راهنمایی داشتید از بخش نظرات اعلام بفرمایید:)

 


 

 


ارسال نظر

برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *

ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *

اگر نظری برای این مطلب ارسال شد از طریق ایمیل مرا اطلاع بده!
لسیت نظرات
هنوز برای این مطلب نظری ارسال نشده است!