12

我在 ListView 的每一行都有一个 ViewPager 小部件。这提供了一个类似于架子的 UI,因此用户可以在垂直方向上滚动搜索架子,然后在架子的内容之间水平滚动。这行得通。

但是滚动体验很糟糕:如果我开始拖动架子的 ViewPager,水平滚动它,然后不小心向上/向下拖动了一点,那么 ListView 会“捕获”这个拖动动作,并开始垂直滚动,结束我的水平拖动。在这种状态下,拖动操作不会“返回”到 ViewPager,ListView 有它,仅此而已。我必须开始另一个拖动操作才能再次影响 ViewPager。所以我猜在这些情况下 ListView 具有优先权。

如何解决这个问题?我想实现完全相反:如果列表行内的 ViewPager 开始对水平拖动做出反应,那么它应该捕获该动作,并且无论用户如何移动他/她的手指,这种拖动都应该停止影响 ListView垂直。这可以做到吗?

4

1 回答 1

3

我在这个线程中找到了解决方案。问题是在常规 ScrollView 中正确处理 Horizo​​ntalScrollView 的触摸事件,但该问题的解决方案似乎也适用于这个问题。

于 2012-09-13T18:49:28.910 回答