如何在Android中同步两个scrollview?
我有两个水平滚动视图,希望它们始终保持在相同的位置/距离。如果用户滚动其中一个,则需要以编程方式滚动另一个。挑战在于,将出现无限循环。一个会举起另一个,另一个会先举起。如何设置状态,指示用户启动的滚动仍在进行中?因此,其他scrollview不应执行编程滚动 其中一个是如何在Android中同步两个scrollview?,android,horizontal-scrolling,Android,Horizontal Scrolling,我有两个水平滚动视图,希望它们始终保持在相同的位置/距离。如果用户滚动其中一个,则需要以编程方式滚动另一个。挑战在于,将出现无限循环。一个会举起另一个,另一个会先举起。如何设置状态,指示用户启动的滚动仍在进行中?因此,其他scrollview不应执行编程滚动 其中一个是水平滚动视图另一个是回收视图 尝试了以下解决方案,但没有成功: horizontalScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewT
水平滚动视图
另一个是回收视图
尝试了以下解决方案,但没有成功:
horizontalScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
if (programmaticScrollEnable) {
programmaticScrollEnable = false;
// do programmatic scrolling here
programmaticScrollEnable = true;
}
}
});
试图在onScrollStateChanged
方法中更改状态:
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
/*if (newState == RecyclerView.SCROLL_STATE_IDLE) {
MainActivity.programmaticScrollEnable = true;
}*/
}
试试这个
horizontalScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
recyclerView.scrollTo(horizontalScrollView.scrollTo(horizontalScrollView.getScrollX(), 0);
}
});
对这个有什么想法吗