【发布时间】:2011-06-28 15:35:37
【问题描述】:
我有两个水平滚动视图,每个视图下都包含一个线性布局项。如何同步滚动,当其中一个滚动时,另一个也自动滚动。有什么帮助吗?
【问题讨论】:
标签: android horizontalscrollview
我有两个水平滚动视图,每个视图下都包含一个线性布局项。如何同步滚动,当其中一个滚动时,另一个也自动滚动。有什么帮助吗?
【问题讨论】:
标签: android horizontalscrollview
你可以做的是在第一个 Horizontal Scroll 视图的 onTouch 上,记录它开始的 X 位置,用于 Down 动作。然后当你有一个移动的动作时,记录下 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);
}
【讨论】:
我会为每个视图实现onScrollListener,以便在另一个视图上调用scrollTo。
【讨论】:
HorizontalScrollView 没有 onScrollListener 方法。
scrollView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener(){...});