Почему прокрутка ViewPager перед тем, как изменить его заполнение и pagemargin, полностью подвела его?

Я хочу иметь возможность переключать мой просмотрщик между двумя разными состояниями. Одно состояние, в котором фрагмент занимает весь экран, и второе состояние, где он показывает превью фрагментов с обеих сторон. Ниже приведен желаемый эффект: https://im2.ezgif.com/tmp/ezgif-2-d5afc38aa7.gif

Обратите внимание, что gif только для первого элемента в viewpager. Посмотрите, что произойдет, когда я перейду к другому элементу в представлении, прежде чем пытаться переключать состояния: https://im2.ezgif.com/tmp/ezgif-2-bf17757173.gif Как вы можете видеть, я был на элементе с надписью «2», и он «уменьшил» до некоторой неправильной точки во втором состоянии.

Ниже приведен мой код (в Котлине):

fun setupListeners() { btnTest.setOnClickListener { TransitionManager.beginDelayedTransition(binding.viewPager) if(stateTwo) { resetViewPagerStyling() } else { setViewPagerStateTwo() } stateTwo = !stateTwo } } fun setViewPagerInStateTwo() { // Setup view pager to show siblings viewPager.clipToPadding = false // Setup margins to show pages to the side viewPager.setPadding(100, 100, 100, 100) viewPager.pageMargin = 50 } fun resetViewPagerStyling() { // Setup view pager to show siblings viewPager.clipToPadding = true // Reset margin and padding to 0 viewPager.setPadding(0, 0, 0, 0) viewPager.pageMargin = 0 }