2
私は2つの水平スクロールビューを持ち、それらを常に同じ位置/距離に保ちたいと思います。ユーザーがスクロールすると、プログラムでスクロールする必要があります。問題は、無限ループが発生することです。 1つは他を上げ、他のものは最初に上げるでしょう。どのようにして状態を設定し、ユーザーが開始したスクロールがまだ進行中であることを示すことができますか?したがって、他のスクロールビューはプログラムによるスクロールを実行しません。Androidで2つのスクロールビューを同期するにはどうすればよいですか?
これらのうちの1つは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;
}*/
}