两个ExpandableListView中滚动的同步

Synchronisation of the scroll in the two ExpandableListView

我有两个 ExpandableListView,它们彼此靠近。是否可以在两者中同步滚动?让我们说如果用户开始滚动在第一个 ExpandableListView 开始滚动也在第二个 ExpandableListView 开始滚动?

比如前三列(第二行)是第一个ExpandableListView,最后一个是第二个ExpandableListView。 (见图)

这是一个有趣的问题。我发明了这个概念证明 github gist

此解决方案依赖于 View.OnTouchListener,我们通过 MotionEvent 从第一个可扩展视图传递到另一个可扩展视图dispatchTouchEvent 方法,反之亦然。

这是示例用法:

    ExpandableListViewSynchronisationTouchListener expandableListViewSynchronisationTouchListener = new ExpandableListViewSynchronisationTouchListener(this, firstExpandable, secondExpandable);
    firstExpandable.setOnTouchListener(expandableListViewSynchronisationTouchListener);
    secondExpandable.setOnTouchListener(expandableListViewSynchronisationTouchListener);
    firstExpandable.setOnChildClickListener(expandableListViewSynchronisationTouchListener);
    secondExpandable.setOnChildClickListener(expandableListViewSynchronisationTouchListener);