水平和垂直ViewPager在一起

时间:2014-02-06 06:45:46

标签: android android-fragments android-viewpager

我有一个项目列表(自定义对象)。这是主要清单。 列表中的每个项目都有另一个数据列表(URLS)。这是子列表。

我想将主列表中的数据显示为vertical viewpager。因此,在垂直方向上翻转会更改主列表中的项目。并且对于主列表中每个项目中的数据,应将子列表实现为horizontal viewpager。因此,如果投掷是水平方向,它会显示子列表中与主列表中的项目对应的项目。

此外,垂直投放到子列表中的任何项目都应该能够进入主列表的下一个项目。

基本上,我正在考虑实现两个方向视图寻呼机。在一个方向上实现view-pager似乎非常简单。即FragmentActivity托管Fragment和实现FragmentPagerAdapter的适配器类。但是,我应该如何实现上述功能呢?

我尝试过使用包括DirectionalViewPager在内的一些第三方库(虽然它已被弃用)。我打算一起使用GestureListeners和动画来构建这种效果。

关于什么是解决这个问题的最佳方法的任何指示都会非常有用。

谢谢,

1 个答案:

答案 0 :(得分:3)

我在一个名为 DoubleViewPager 的视图上构建了一个将水平viewpager (父级)与垂直viewpagers (每个子级)相结合的解决方案。我在垂直viewpager上覆盖了以下方法:

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

当用户在每个孩子上触发这些事件时,他们会将其传递给父母。然后,如果事件是垂直的,则子进程处理它,否则,如果事件是水平的,则父进程处理它。

看看我的DoubleViewPager图书馆,我在那里实施了这个策略。