我有两个水平的
其中一个是
尝试了以下解决方案,但均未成功:
scrollview
,想要让它们始终保持相同的位置/距离。如果用户滚动一个,则需要编程滚动另一个。挑战在于会出现无限循环。其中一个将引发另一个,另一个将首先引发。如何设置状态,指示用户启动的滚动仍在进行中?因此,其他scrollview
不应执行编程滚动。其中一个是
HorizontalScrollView
,另一个是RecyclerView
。尝试了以下解决方案,但均未成功:
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;
}*/
}