۱ رضا لکی سهلوانی
از بین رفتن state هنگام جا به جایی بین تب‌های باتمنویگیشن +‌ navigationComponent
جامعه جاوا (اندروید) ایجاد شده در ۲۰ فروردین ۱۴۰۱

با سلام و احترام خدمت همگی دوستان و اساتید

من bottomNavigation رو با استفاده از navigationComponent پیاده سازی کردم. bottomNavigation من دارای 4 تب هستش (خانه - خبرها - آگهی‌ها - پروفایل). و همچنین دارم از MVVM استفاده می‌کنم.

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

هنگامی که کاربر وارد تب خبرها میشه من به API خودم رکوئست می‌زنم و لیست خبرها رو داخل یک recyclerView نمایش میدم. (دیتای دریافتی از سرور رو توی ViewModel خودم دخل MutableLiveData نگه میدارم)

اما وقتی که کاربر بین تب‌های bottomNavigation جا به جا میشه و مجدد وارد تب خبرها میشه دیتایی که از قبل داخل متغیر در ViewModel نگه داشته بودم برابر NULL نمایش داده میشه و مجدد رکوئست به سرور ارسال میشه.

به نظر می‌رسه وقتی که کاربر از هر تبی به تب دیگه میره ، فرگمنت مربوط به تب قبلی کامل desctoy میشه. (حتی وقتی وارد تب دیگه میشم فرگمنت مربوط ب اون با تاخیر/لگ نمایش داده میشه)

هر چند که لایف سایکل اونر ViewModel خودم رو requiredActivity قرار دادم ولی باز ViewModel و فرگمنت از بین میره ( با debug به اینتجه رسیدم).

viewModel = ViewModelProvider(requireActivity()).get(NewsViewModel::class.java)

حالا سوال من اینکه که چجوری میشه instance مربوط به هر فرگمنت و همچنین ViewModel مربوط به اون رو نگه داشت که هنگام جا به جایی بین تب‌های bottomNavigation از بین نره؟

خودم که سرچ کردم به این لینک رسیدم ... ولی به جوابی نرسیدم => لینک

ممنون میشم از دوستان راهنمایی کنند

سلام و درود

بی زحمت کد فرگمنتی که داخل دیتا نمایش میدید و ویومدل مربوط به اون فرگمنت رو قرار بدید تا بتونیم راهنمایی کنیم


امین رحیم زاده ۲۹ شهریور ۱۴۰۱، ۱۰:۳۹