با سلام و احترام خدمت همگی دوستان و اساتید
من 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 از بین نره؟
خودم که سرچ کردم به این لینک رسیدم ... ولی به جوابی نرسیدم => لینک
ممنون میشم از دوستان راهنمایی کنند