2
我有两个水平滚动视图,并希望始终保持在相同的位置/距离。如果用户滚动一个,需要以编程方式滚动另一个。挑战在于,会出现无限循环。一方会提出另一方,另一方会先提出。如何设置状态,指示用户启动的滚动仍在进行中?所以其他的滚动视图不应该执行程序滚动。如何同步Android中的两个滚动视图?
其中之一是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;
}*/
}