У меня есть android:configChanges="orientation|screenSize" в манифесте, чтобы избежать разрушения и повторного создания средства просмотра.
Адаптер
Код: Выделить всё
class ViewPageAdapter(
private val tabs: ArrayList, childFragmentManager: FragmentManager, lifecycle: Lifecycle
): FragmentStateAdapter(childFragmentManager, lifecycle) {
override fun getItemCount(): Int = tabs.size
override fun createFragment(position: Int): Fragment {
return tabs[position].fragment
}
override fun containsItem(itemId: Long): Boolean {
return tabs.map { it.tabId }.contains(itemId)
}
override fun getItemId(position: Int): Long {
return tabs[position].tabId
}
fun removeItem(index: Int) {
tabs.removeAt(index)
notifyItemRemoved(index)
notifyItemRangeChanged(index, tabs.size)
notifyDataSetChanged()
}
}
Код: Выделить всё
adapter = ViewPageAdapter(browser.tabs, childFragmentManager, lifecycle)
binding.viewPager.adapter = adapter
binding.viewPager.offscreenPageLimit = 100
binding.viewPager.isUserInputEnabled = false


Подробнее здесь: https://stackoverflow.com/questions/678 ... pe-with-vi