У меня есть два горизонтальных прокрутки, и вы хотите держать их всегда в одном и том же положении/расстоянии. Если пользователь прокручивает один, необходимо прокручивать программно другое. Задача состоит в том, что произойдет бесконечный цикл. Один поднимет другой, другой поднимет первым. Как я могу установить состояние, указать, что прокрутка, инициированная пользователем, все еще продолжается? Поэтому другое scrollview не должно выполнять программный свиток.Как синхронизировать два scrollview в 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;
}*/
}