2014-12-14 4 views
6

Я хочу совместить горизонтальный ViewPager по умолчанию с каким-то vertical ViewPager. Мой подход будет заключаться в том, что фрагменты, предоставляемые горизонтальным ViewPager, подклассифицируют вертикальный ViewPager.android - объединить горизонтальный viewpager с вертикальным viewpager

public class SubWebViewFragment extends Fragment, VerticalViewPager { 
} 

Таким образом, каждый фрагмент обеспечивается горизонтальной ViewPager должны в то же время действуют как VerticalViewPager, создание своего рода матрицу. Кроме того, у меня должна быть возможность перейти на определенную страницу в этой матрице. Например. Я хочу выбрать страницу 2 горизонтального ViewPager, а на этой странице два, я хочу перейти на страницу три вертикального ViewPager.

// pseudo code 
HorizontalViewPager.setCurrentItem(1, true); 
activeHorizontalPage.getVerticalViewPager.setCurrentItem(2, true); 

Я немного потерял, как подойти к этой проблеме.

ответ

0

Вы решили использовать ListView вместо вертикальной ViewPager также попытаться проверить на Twowayview library

+0

Я думаю, что ListView на самом деле невозможен. См. Http://stackoverflow.com/a/8457633/237690 .. Возможно, Twowayview - это возможность. Спасибо .. –

12

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

  • public boolean onInterceptTouchEvent(MotionEvent ev)
  • public boolean onTouchEvent(MotionEvent ev)

Когда пользователь запускает эти события на каждом ребенке, они проходят его родитель. Затем, если событие вертикально, дочерний процесс обрабатывает его, иначе, если событие является горизонтальным, родительский процесс обрабатывает его.

Посмотрите на мою библиотеку DoubleViewPager, где я реализовал эту стратегию.

+0

Он не работает с FragmentPagerAdapter или FragmentStatePagerAdapter. – ycagri

+0

@ycagri Нет, он работает с DoubleViewPagerAdapter. –

+0

Если DoubleViewPagerAdapter распространяется от FragmentPagerAdapater от FragmentStatePagerAdapter, он работает неправильно. Для первого столбца работает вертикальный салфетки, но он не заполняет другие столбцы. – ycagri

2

Этот проект DoubleViewPager на GitHub, похоже, реализовал простую версию того, что вы просите. У него есть настроенный HorizontalViewPager и VerticalViewPager, полученный из класса ViewPager, который позволяет запрашивать структуру стека страниц.

Смежные вопросы