Junior — Middle
Activity yenidən yaradılarkən RecyclerView-də sürüşmə mövqeyinin necə təmin edilə biləcəyi?
sobes.tech Süni İntellekt
AI-dan cavab
RecyclerView-də sürüşmə mövqeyini Activity yenidən yaradarkən saxlamaq üçün LayoutManager vəziyyətini yadda saxlaya və bərpa edə bilərsiniz.
LinearLayoutManager üçün nümunə:
// Mövqeyi yadda saxlayın
val layoutManager = recyclerView.layoutManager as LinearLayoutManager
val scrollPosition = layoutManager.findFirstVisibleItemPosition()
// Bundle-də saxlayın, məsələn, onSaveInstanceState-də
outState.putInt("scroll_position", scrollPosition)
// Mövqeyi onCreate və ya onRestoreInstanceState-də bərpa edin
val position = savedInstanceState?.getInt("scroll_position") ?: 0
recyclerView.scrollToPosition(position)
Əgər daha dəqiq bərpa tələb olunursa (məsələn, element daxilində kənarlaşmanı nəzərə alaraq), LayoutManager-ın Parcelable vəziyyətini yadda saxlaya bilərsiniz:
// Yadda saxlayın
val layoutState = recyclerView.layoutManager?.onSaveInstanceState()
outState.putParcelable("layout_state", layoutState)
// Bərpa edin
val layoutState = savedInstanceState?.getParcelable<Parcelable>("layout_state")
recyclerView.layoutManager?.onRestoreInstanceState(layoutState)
Beləliklə, Activity yenidən yaradıldıqda, sürüşmə mövqeyi düzgün şəkildə saxlanacaq və bərpa olunacaq.