Android: Viewpager2 застревает на полпутиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android: Viewpager2 застревает на полпути

Сообщение Anonymous »

При попытке перелистывания между любыми фрагментами viewpager2 представление зависает на 75 % перехода.
Изображение
Пролистывание из от первого фрагмента ко второму:
Изображение

Пролистывание от второго фрагмента к первому:
Изображение

Viewpager_Layout Viewpager_Fragment

Код: Выделить всё

@AndroidEntryPoint
class OnBoardingFragmentHolder @Inject constructor(
private val onBoardingViewPagerAdapter: OnBoardingViewPagerAdapter,
private val mediator: TabLayoutHelper,
) : InvisibleBottomNavFragment() {

override val bindingInflater: (LayoutInflater) -> FragmentOnBoardingHolderBinding
get() = FragmentOnBoardingHolderBinding::inflate

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initTablayout()
}

private fun initTablayout() {
binding.viewPager.adapter = onBoardingViewPagerAdapter
binding.viewPager.offscreenPageLimit = 2
mediator.init(binding.tlOnBoardingItem, binding.viewPager)
}

override val onDestroyView: () -> Unit
get() = {
binding.viewPager.adapter = null
mediator.onDestroyView()
}
}
Фрагмент InvisibleBottom

Код: Выделить всё

abstract class InvisibleBottomNavFragment  : BindingFragment() {
override fun onAttach(context: Context) {
super.onAttach(context)
postStickyEvent(MainActivityBusEventBottomNav(toBeClosed = true,
fromClass = "InvisibleBottomNavFragment.kt"))
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
postStickyEvent(MainActivityBusEventBottomNav(toBeClosed = true,
fromClass = "InvisibleBottomNavFragment.kt"))
}

override fun onResume() {
super.onResume()
postStickyEvent(MainActivityBusEventBottomNav(toBeClosed = true,
fromClass = "InvisibleBottomNavFragment.kt"))
}
}
Пейджер просмотра

Код: Выделить всё

class OnBoardingViewPagerAdapter @Inject constructor(
fragment: Fragment
) : FragmentStateAdapter(fragment) {
private companion object {
private const val FRAGMENT_ITEM_COUNT = 3
}

override fun getItemCount(): Int = FRAGMENT_ITEM_COUNT

override fun createFragment(position: Int): Fragment = when (position) {
0 -> OnBoardingFirstFragment()
1 -> OnBoardingSecondFragment()
2 -> OnBoardingThirdFragment()
else -> throw IllegalStateException("$position can not be satisfied")
}
}
Самым странным мне кажется то, что когда я быстро прокручиваю фрагменты (например, не удерживая кнопку мыши до конца, а просто пролистывая), все работает нормально.

Подробнее здесь: https://stackoverflow.com/questions/710 ... k-half-way
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»