同步两个水平滚动视图android

时间:2011-06-28 15:35:38

标签: android horizontalscrollview

我有两个水平滚动视图,每个视图包含一个线性布局项目。如何同步滚动,当其中任何一个滚动时,另一个也会自动滚动。有什么帮助吗?

2 个答案:

答案 0 :(得分:3)

你可以做的是在第一个水平滚动视图的onTouch上,记录它为Down动作开始的X位置。然后当你有一个Move动作时,记录X位置的变化。然后你可以调用第二个水平滚动视图的scrollBy(deltaX,0)。在Up或Cancel操作中,请确保重置状态变量。

我使用列表视图滚动垂直滚动,只使用Y位置而不是X来完成此操作。这是我完成此操作的代码。 concurrentScroller是我的垂直视图。

if(concurrentScroller != null) {
            int deltaY = (int) (startTouchConcurrentY - ev.getY());
            startTouchConcurrentY = ev.getY();
            concurrentScroller.scrollBy(0, deltaY);                             
        } 

答案 1 :(得分:1)

我会为每个视图实施onScrollListener,以便在另一个视图中调用scrollTo