水平和垂直ViewPager的结合

5
我有一个项目列表(自定义对象),这是主列表。每个项目都有另一个数据列表(URLS),这是子列表。
我想将主列表的数据实现为垂直视图页。因此,垂直翻转可以更改主列表中的项目。对于主列表中每个项目中的数据,应将子列表实现为水平视图页。因此,如果水平滑动,则会显示与主列表中的项目相对应的子列表中的项目。
此外,任何子列表中的垂直滑动都应该能够进入下一个主列表项目。
基本上,我希望实现双向视图页面。在一个方向上实现视图页面似乎很简单。即,FragmentActivity托管Fragment和实现FragmentPagerAdapter的适配器类。但是,我该如何实现上述功能?
我尝试使用一些第三方库进行玩耍,包括DirectionalViewPager(虽然它已被弃用)。我计划使用GestureListeners和动画一起构建此效果。
如果您能指出最好的解决方法,那将非常有帮助。
谢谢,

3
你有解决方案吗?我也在寻找同样的实现。如果你有解决方案,能与我分享吗? - Swapnil Sonar
1个回答

3
我构建了一个解决方案,将横向ViewPager(父级)与单个视图中的纵向ViewPager(每个子级)组合在一起,并称之为DoubleViewPager。我重写了纵向ViewPager上的以下方法:
  • public boolean onInterceptTouchEvent(MotionEvent ev)
  • public boolean onTouchEvent(MotionEvent ev)
当用户在每个子项上触发这些事件时,它们会将其传递到父级。然后,如果事件是垂直的,则子级处理它,否则,如果事件是水平的,则父级处理它。
请参考我的DoubleViewPager库,查看我实现此策略的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接