我想将默认的水平ViewPager与某种vertical ViewPager组合在一起。我的方法是水平ViewPager提供的Fragments是子类化垂直ViewPager。
public class SubWebViewFragment extends Fragment, VerticalViewPager {
}
因此,水平ViewPager提供的每个Fragment应该同时充当VerticalViewPager,构建某种矩阵。另外,我必须有可能去这个矩阵中的某个页面。例如。我想选择水平ViewPager的第2页,在这个页面中我想要转到第3页的垂直ViewPager。
// pseudo code
HorizontalViewPager.setCurrentItem(1, true);
activeHorizontalPage.getVerticalViewPager.setCurrentItem(2, true);
我对如何解决这个问题感到有点迷失。
答案 0 :(得分:12)
我构建了一个将水平viewpager (父级)与垂直浏览器(每个子级)相结合的解决方案。 我在垂直viewpager上覆盖了以下方法:
public boolean onInterceptTouchEvent(MotionEvent ev)
public boolean onTouchEvent(MotionEvent ev)
当用户在每个孩子上触发这些事件时,他们会将其传递给父母。然后,如果事件是垂直的,则子进程处理它,否则,如果事件是水平的,则父进程处理它。
看看我的DoubleViewPager图书馆,我在那里实施了这个策略。
答案 1 :(得分:2)
GitHub上的这个DoubleViewPager项目似乎已经实现了你所要求的简单版本。他有一个自定义的HorizontalViewPager和VerticalViewPager派生自ViewPager类,允许您要求的页面堆栈结构。
答案 2 :(得分:-1)
您是否考虑使用listview而不是垂直viewpager也尝试查看Twowayview library