Отключить плавную прокрутку при переходе с текущего элемента на другой в окне просмотра2 android - PullRequest
0 голосов
/ 12 июля 2020

Привет всем, я новичок в android с kotlin. У меня проблема в viewpager2 , которую я не могу решить. У меня есть один изменяемый список , в котором присутствуют данные о 30 элементах. Когда приложение открывается, я использовал по умолчанию 15 данных индекса по умолчанию как индекс viewpager2 как текущий элемент. Если я перехожу на страницу с индексом 0, я сбрасываю данные Mutablelist и добавляю 10 или 20 данных слева и значение индекса 0, установленное в середине, что означает, что я перемещаю данные, в которых я преуспеваю. Но основная проблема заключается в том, чтобы отключить плавную прокрутку от 0 до 10-20, когда я сбрасываю список, также у меня есть переменная observable в качестве моего текущего индекса, который я меняю текущий элемент viewpager2 .

private var b = false

 mViewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
    override fun onPageScrolled(int position, float arg1, int arg2) {
            if(b){
                 if(position > 0 && position < 15){
                    mViewPager.setCurrentItem(currenIndex,false)
                    b = false
                 }
             }
    }
}

In Activity , когда я сбрасываю изменяемый список или добавляю в него какое-то значение, я изменил логическое значение как true

 b = true

также в мой наблюдаемый код

currenIndex.observer(this, Observer {
 mViewPager.setCurrentItem(it, true)
})

Он всегда прыгает при сбросе списка на 0,1,2,3,4,5,6,7,8,9,10 .. и Я хочу отключить всю анимацию между ними и хотел только отображать страницу напрямую 15 страница

Также я попытался удалить

mViewPager.setCurrentItem(it, true)

из моей наблюдаемой переменной, это работает но у них есть проблема между 0 и 1, анимация останавливается между ними при первом достижении индекса 0 без сброса списка.

Извините за мой Engli sh. Заранее спасибо

1 Ответ

0 голосов
/ 14 июля 2020

Второй параметр функции ViewPager.setCurrentItem - логическое значение smoothScroll Попробуйте следующее:

mViewPager.setCurrentItem(15, false)
...