Junior — Middle
Activity qayta yaratilganda RecyclerView'da skroll pozitsiyasini qanday ta'minlash mumkin?
sobes.tech AI
AIdan javob
RecyclerView'da skroll qilish pozitsiyasini Activityni qayta yaratishda saqlash uchun LayoutManager holatini saqlash va tiklash mumkin.
LinearLayoutManager uchun misol:
// Pozitsiyani saqlash
val layoutManager = recyclerView.layoutManager as LinearLayoutManager
val scrollPosition = layoutManager.findFirstVisibleItemPosition()
// Bundlega saqlash, masalan, onSaveInstanceState ichida
outState.putInt("scroll_position", scrollPosition)
// Pozitsiyani onCreate yoki onRestoreInstanceState ichida tiklash
val position = savedInstanceState?.getInt("scroll_position") ?: 0
recyclerView.scrollToPosition(position)
Agar yanada aniqroq tiklash kerak bo‘lsa (masalan, element ichidagi siljishni hisobga olgan holda), LayoutManagerning Parcelable holatini saqlash mumkin:
// Saqlash
val layoutState = recyclerView.layoutManager?.onSaveInstanceState()
outState.putParcelable("layout_state", layoutState)
// Tiklash
val layoutState = savedInstanceState?.getParcelable<Parcelable>("layout_state")
recyclerView.layoutManager?.onRestoreInstanceState(layoutState)
Shunday qilib, Activityni qayta yaratishda skroll qilish pozitsiyasi to‘g‘ri saqlanadi va tiklanadi.