ورود

View Full Version : ذخیره حالت های فرگمنت



slr560
سه شنبه 29 خرداد 1397, 23:18 عصر
دوستان من یه چالش دارم که چندین ساله درگیرم کرده
فرض بگیرید داخل یک اکتیویتی ۴تا فرگمنت داریم . ساختار برنامه BottomNavigation هست و با انتخاب کردن هر آیتم فرگمنت مورد نظر Replace میشه.
دقت کنید اینجا فرگمنت ها replace میشه و مشکل همینجاس که نمیشه حالت های ساخته شده توی فرگمنت رو نگه داشت . مثل لیست لود شده یا ...
به محض اینکه replace میشه تمام view از بین میره و وقتی دوباره فرگمنت ساخته میشه داده ها هم از نو لود میشه
کسی راه حلی برای نگه داشتن این لیست ها یا حالت موقع replace داره؟

توجه کنید من نمیخوام از viewPager استفاده کنم . میشه از add و hide کردن فرگمنت ها استفاده است ولی بازم نمیخوام از این متد استفاده کنم
فقط مد نظرم موقع replace کردنه

متدهای saveInstanceState هم نمیشه استفاده کرد . چون اکتیویتی تغییری نمیکنه
نمونه قابل مثال برنامه بازار هست

راه حل؟؟؟ :متفکر::متفکر:

farhad_shiri_ex
چهارشنبه 30 خرداد 1397, 03:15 صبح
معمولا برای ذخیره Object ها از کلاس Parcelable تو فرگمنت ها استفاده میکنند و برای ذخیره وضعیت یک شی هم که از الگوی Memento استفاده میکنند ویا سریال سازی آبجکت ها و ObjectInputStream , ObjectOutputStream هم می تونید استفاده کنید.
البته وضعیت یک فرگمنت را پیش نیومده بخوام نگه دارم ولی وضعیت خیلی از ویو ها را شده که نگه داشتم حتی بعد بستن برنامه .

#root#
دوشنبه 04 تیر 1397, 09:33 صبح
نمونه قابل مثال برنامه بازار هست

مثال جالبی زدین :لبخند: بازار از ViewPager استفاده میکنه، فقط قابلیت Swipe رو غیرفعال کردن. یه Inspect از صفحش بگیرید متوجه میشید.