Я использую TabLayout и 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 вправо, он показывает следующую страницу.
Это может быть трудно понять, но вот оно. Проведите пальцем вправо, чтобы перейти к следующей странице
а мне нужно провести вправо, чтобы открыть предыдущую страницу.
PagerAdapter
было в обратном порядке? - person CommonsWare   schedule 07.09.2015PagerAdapter
на противоположное - это то, что вам нужно. На самом деле вViewPager
нет концепции следующей или предыдущей страницы, поскольку она заботится только о значениях индекса страницы. Вы должны упорядочить содержимое вашегоPagerAdapter
таким образом, чтобы следующая страница означала то, что вы хотите. Это также может означать, что вам нужно установить индекс начальной страницы в конце, согласно комментарию Криса, в зависимости от того, каким вы хотите, чтобы ваше начальное состояние было. - person CommonsWare   schedule 07.09.2015ViewPager
не имеет следующего.ViewPager
не имеет предыдущего. Это ваши условия, которые вы накладываете поверх того, что предлагаетViewPager
API. Пока вы не решите, что означает «следующий» и «предыдущий» с точки зренияViewPager
API и его значений индекса страницы, никто не сможет вам действительно помочь. То, как я перевел бы следующее и предыдущее с точки зренияViewPager
API, совпадает с тем, что я предлагал в своих предыдущих комментариях. - person CommonsWare   schedule 07.09.2015