Как изменить страницу без анимации в настройке TabLayout с ViewPager? - PullRequest
0 голосов
/ 02 июня 2019

У меня есть TabLayout настройка с ViewPager. Когда я выбираю вкладку, ViewPager прокручивает до выбранной страницы с анимацией (показывая все страницы между текущей страницей и выбранной страницей). Я хочу, чтобы ViewPager непосредственно перешел на выбранную страницу.

Я знаю, что могу использовать viewPager.setCurrentItem(1, false) для отключения smoothScroll. Но я хочу изменить поведение по умолчанию, чтобы отключить эффект smoothScroll для ViewPager

Вот что я сделал.

val mSectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager)

        vp!!.adapter = mSectionsPagerAdapter
        vp!!.addOnPageChangeListener(object: ViewPager.OnPageChangeListener {
            override fun onPageScrollStateChanged(state: Int) {
            }

            override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
            }

            override fun onPageSelected(position: Int) {
                when (position) {
                    0 -> supportActionBar!!.title = "Page 1"
                    1 -> supportActionBar!!.title = "Page 2"
                    2 -> supportActionBar!!.title = "Page 3"
                    3 -> supportActionBar!!.title = "Page 4"
                }
            }
        })

        tabLayout.setupWithViewPager(vp)

1 Ответ

0 голосов
/ 02 июня 2019

Вы можете создать подкласс ViewPager и создать собственный ViewPager. Посмотрите ответ Тони по этой ссылке: Отключение анимации в ViewPager

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...