ListView中的ViewPager - 如何锁定滚动轴?

时间:2011-10-26 09:27:00

标签: android android-listview android-viewpager

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

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

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

1 个答案:

答案 0 :(得分:3)

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