我有一个垂直方向的RecyclerView,列表的每个项目都包含HorizontalScrollView,简而言之,它是某种带有可滚动行的表格(查看下面的图片)
当我滚动其中一个水平视图时,所有其他视图也应滚动 我已经做了什么:
private int scrollDistance;
@Override
public void onBindViewHolder(RecyclerView.Holder holder, int position) {
holder.binding.scrollView.post(() -> holder.binding.scrollView.scrollTo(scrollDistance, 0));
holder.binding.scrollView.setChangeListener(dx -> {
for (int i = layoutManager.findFirstVisibleItemPosition(); i <= layoutManager.findLastVisibleItemPosition(); i++) {
View view = layoutManager.findViewByPosition(i);
if (view == null) {
continue;
}
HorizontalScrollView scrollView = (HorizontalScrollView) view.findViewById(R.id.scrollView);
if (scrollView != null) {
scrollView.scrollTo(dx, 0);
}
}
scrollDistance = dx;
});
}
它可以工作但是当我开始向下滚动或向上滚动有时会发生HorizontalScrollView保持旧位置。
问题:如何在同一位置同步所有视图?
提前谢谢!