在 Horizo​​ntalScrollView 和 BarChart 滚动之间切换

Switching between HorizontalScrollView and BarChart scroll

我有一个 MPAndroidChart BarChart,它被放置在 Horizo​​ntalScrollView 中。现在,我在图表视图中有多个条形图,图表宽度也根据我的要求固定。因为图表有默认的滚动行为,所以我可以看到所有的条形图。

唯一的问题是滚动行为不流畅并且滞后很多。

我的想法是在我开始滚动图表后禁用 Horizo​​ntalScrollView,并在我触摸图表外部时重新启用它。有人可以告诉我该怎么做吗?我希望我的问题足够清楚,没有必要为此分享任何 XML。提前致谢。

我在水平滚动视图中使用 Mpchart 时遇到了类似的问题。 我有一个使用 MpChart setOnChartGestureListener 的解决方法。

barChart.setOnChartGestureListener(new OnChartGestureListener() {
        @Override
        public void onChartGestureStart(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture) {
            horizontalScrollView.requestDisallowInterceptTouchEvent(true);
        }

        @Override
        public void onChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture) {
            horizontalScrollView.requestDisallowInterceptTouchEvent(false);
        }

        //.....//

        @Override
        public void onChartTranslate(MotionEvent me, float dX, float dY) {
            Log.i("GESTURE", "onChartTranslate");
            if(barChart.getLowestVisibleX() == barChart.getXAxis().getAxisMinimum() || barChart.getHighestVisibleX() == barChart.getXAxis().getAxisMaximum()) {
                horizontalScrollView.requestDisallowInterceptTouchEvent(false);
            } else {
                horizontalScrollView.requestDisallowInterceptTouchEvent(true);
            }
        }
    });

horizo​​ntalScrollView 对象是图表所在的位置。