У меня есть 3 вида ресайклера, когда один прокручивает две другие прокрутки одновременно, я использую OnScrollListener для этого
@Override
public void onScrolled(RecyclerView recyclerView, final int dx, final int dy) {
super.onScrolled(recyclerView, dx, dy);
recyclerView2.removeOnScrollListener(this);
recyclerView3.removeOnScrollListener(this);
recyclerView2.scrollBy(dx , 0);
recyclerView3.scrollBy(dx , 0);
recyclerView2.addOnScrollListener(this);
recyclerView3.addOnScrollListener(this);
}
Это работает нормально, но я бы хотел, чтобы recyclerView2 и recyclerView3 замедлялись при прокрутке
Я пытаюсь использовать fling ()
recyclerView1.setOnFlingListener(new RecyclerView.OnFlingListener() {
@Override
public boolean onFling(int velocityX, int velocityY) {
recyclerView2.fling(40* (int) Math.signum((double)velocityX), velocityY);
recyclerView3.fling(60* (int) Math.signum((double)velocityX), velocityY);
return true;
}
});
Это замедлит 3 ресайклера вместо замедления только recyclerView2 и recyclerView3.
Нет, эта проблема решена в моем случае, моя проблема в том, чтобы просто замедлить другой повторный просмотр
но ... не происходит ли автоматическое замедление броска? Почему бы не сохранить прослушиватель onscroll для представления ресайклера 1, и вместо прокрутки других представлений ресайклера вы просто вызываете те 2 метода бросания, которые у вас есть?
Возможно связано с этим вопросом stackoverflow.com/questions/30702726/…