У меня есть 4 вкладки в нижнем виде навигации, которые называются:
- Домой
- Поиск
- Избранное
- Профиль
вот упрощенный код фрагмента моего профиля
class ProfileFragment : Fragment() {
private var lastDocumentFromQuery : DocumentSnapshot? = null
private var attendedEvents = ArrayList<Event>()
private var currentPage = 0
private var isLoadingData = false
private var isInTheLastPage = false
private var noMoreDataAvailable = false
lateinit var linearLayoutManager : LinearLayoutManager
lateinit var model : ProfileViewModel
override fun onAttach(context: Context) {
super.onAttach(context)
mContext = context
activity?.let { mActivity = it }
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return fragmentView
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
model = ViewModelProviders.of(this).get(ProfileViewModel::class.java)
}
}
, если я нахожусь на вкладке Профиль и при переключении на вкладку Избранное, например, значение свойств в моем классе ProfileFragment
будетуйти, и кажется, что он воссоздан с самого начала снова.
Я имею в виду эти свойства:
private var lastDocumentFromQuery : DocumentSnapshot? = null
private var attendedEvents = ArrayList<Event>()
private var currentPage = 0
private var isLoadingData = false
private var isInTheLastPage = false
private var noMoreDataAvailable = false
эти свойства изменятся, когда пользователь будет взаимодействовать в ProfileFragment.и я хочу сохранить значения всех этих свойств, а не вернуться к значению по умолчанию после переключения вкладки.
Я пытался использовать модель представления для сохранения значений, но метод onCleared()
в моей viewModelкласс срабатывает, когда я переключаю вкладку, например, с вкладки «Профиль» на «Избранное», так что сохраненные свойства также исчезают.
Я использую компонент контроллера навигации, и в своей функции MainActivity я устанавливаю этот appBarConfiguration (я нене знаете, поможет ли приведенный ниже код моей проблеме или нет)
// set up top hierarchy destination
val appBarConfiguration = AppBarConfiguration(setOf(
R.id.destination_home,
R.id.destination_search,
R.id.destination_favourite,
R.id.destination_profile)
)
setSupportActionBar(toolbar)
searchToolbar.setupWithNavController(navController,appBarConfiguration)
так как сохранить значения этих свойств?извините, я новичок в разработке Android