在RecyclerView中同步Horizo​​ntalScrollView

时间:2016-10-21 15:24:17

标签: android android-recyclerview

我有一个垂直方向的RecyclerView,列表的每个项目都包含Horizo​​ntalScrollView,简而言之,它是某种带有可滚动行的表格(查看下面的图片)  enter image description here

当我滚动其中一个水平视图时,所有其他视图也应滚动 我已经做了什么:

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;
    });
}

它可以工作但是当我开始向下滚动或向上滚动有时会发生Horizo​​ntalScrollView保持旧位置。
问题:如何在同一位置同步所有视图?
提前谢谢!

0 个答案:

没有答案