android - 将水平viewpager与垂直viewpager结合使用 [英] android - combine horizontal viewpager with vertical viewpager

查看:196
本文介绍了android - 将水平viewpager与垂直viewpager结合使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将默认的水平ViewPager与某种垂直ViewPager 结合使用。我的方法是由水平ViewPager提供的片段是子类化垂直ViewPager。

I want to combine a default horizontal ViewPager with some kind of a vertical ViewPager. My approach would be that the Fragments provided by the horizontal ViewPager, are subclassing the vertical ViewPager.

public class SubWebViewFragment extends Fragment, VerticalViewPager {
}

因此,水平ViewPager提供的每个片段应同时作为一个VerticalViewPager,构建某种矩阵。另外,我必须有可能去这个矩阵中的某个页面。例如。我想选择水平ViewPager的第2页,在这个页面中我想要转到第3页的垂直ViewPager。

Thus each Fragment provided by the horizontal ViewPager should at the same time act as a VerticalViewPager, building up some kind of a matrix. In addition I have to have the possibility to go to a certain page in this matrix. E.g. I want to select page 2 of the horizontal ViewPager, and of this page two I want to go to page three of the vertical ViewPager.

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

我对如何处理这个问题感到有点迷失。

I'm a bit lost on how to approach this issue.

推荐答案

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

I built a solution combining a horizontal viewpager (the parent) with vertical viewpagers (each child). I overrode the following methods on vertical viewpager:


  • public boolean onInterceptTouchEvent(MotionEvent ev)

  • public boolean onTouchEvent(MotionEvent ev)

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

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

When the user triggers those events on each child, they pass it to the parent. Then, if the event is vertical, the child processes it, otherwise, if the event is horizontal, the parent processes it.

查看我的 DoubleViewPager 库,我在哪里实施了这个策略。

Take a look to my DoubleViewPager library, where I implemented this strategy.

这篇关于android - 将水平viewpager与垂直viewpager结合使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆