【问题标题】:MPAndroidChart: How to cancel fling event?MPAndroidChart:如何取消投掷事件?
【发布时间】:2015-08-26 16:03:11
【问题描述】:

使用 MPAndroidChart,如何停止用户发起的正在进行的投掷事件?

示例: 用户向后扔情节,情节在触摸后继续向后滚动。用户按下“Resume”按钮,应用程序调用chart.moveViewToX(dataSet.getEntryCount()),但视图实际上并没有移动,直到投掷事件完全停止,这可能需要几秒钟。

换句话说,我正在寻找一种解决方案,它可以立即执行moveViewToX 而无需等待投掷完成。

【问题讨论】:

    标签: android mpandroidchart


    【解决方案1】:

    通过调度一个新的ACTION_DOWN事件,我们可以停止正在进行的fling事件:

    chart.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0));
    

    来源: Stop ListView scroll animation

    【讨论】:

      【解决方案2】:

      将 MotionEvent 伪造到系统中并不是最好的解决方案,尤其是没有匹配的 MotionEvent.ACTION_UP 或 ACTION_CANCEL。

      对于 MPAndroidChart 可以使用

      ((BarLineChartTouchListener)touchListener).stopDeceleration();

      停止投掷动作。是否实现此方法取决于您的图表类型。上面的例子假设你有一个折线图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-04-27
        • 2018-02-11
        • 1970-01-01
        • 2016-03-21
        • 2023-03-16
        • 2013-08-07
        • 1970-01-01
        相关资源
        最近更新 更多