Я использую TabLayout и viewPager с возможностью прокрутки viewPager влево или вправо, чтобы перемещаться между страницами.Изменение направления прокрутки viewPager
Моя проблема заключается в том, что мое приложение основано на RTL (справа налево), а направление движения - наоборот.
Я пытаюсь изменить направление движения от версии по умолчанию до обратной версии. Я искал много в Интернете и не мог найти способ, как это сделать.
Я использую android.support.v4.view.ViewPager;
и это, как я инициализировать мой TabLayout с ViewPager:
// View Page Adapter
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
final PagerAdapter adapter = new PagerAdapter
(getSupportFragmentManager(), tabLayout.getTabCount());
//View Page Adapter Configuration
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
viewPager.setOffscreenPageLimit(3);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
Резюме: В настоящее время, когда я ударяя в ViewPager влево, он показывает следущая страница. в RTL, когда вы просматриваете viewPager справа, он показывает следующую страницу.
Это может быть трудно понять, но вот оно. Swiping справа показывает следующей странице
в то время как мне нужно ударяя право показывать предыдущую страницу.
Разве это не вопрос содержимого «PagerAdapter» в обратном порядке? – CommonsWare
Почему не просто setCurrentItem для последнего элемента? – Chris
@CommonsWare И что происходит, когда я сажусь влево? Разве мне не нужно менять onScrollListener для этого? (тот же ответ вам Крис) Мне нужно изменить направление прокрутки viewPager (прокрутка вправо - следующая страница, прокрутка влево - предыдущая страница). теперь он отменен. Закладки работают отлично, если я их выбираю. прокрутка viewPager - нет. – Eliran