اگر یک برنامه نویس اندروید هستید بدون شک تا کنون با لیست ویو ها و 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 شدن نیز ذخیره و مجددا از مکان قبلی که اسکرول شده بود نمایش دهید.
درصورتی که سوالی یا نیاز به راهنمایی داشتید از بخش نظرات اعلام بفرمایید:)
برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *
ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *
هنوز برای این مطلب نظری ارسال نشده است!