【问题标题】:Disable OnClickListener while scaling or dragging a View在缩放或拖动视图时禁用 OnClickListener
【发布时间】:2015-07-06 23:23:29
【问题描述】:

您好,我正在使用 MPAndroidChart,我添加的 OnClickListener 在我放大或拖动图表后立即触发。如何禁用此行为?

这是我的图表属性:

chart.setTouchEnabled(true);        
chart.setScaleEnabled(true);
chart.setDragEnabled(true);        
chart.setPinchZoom(true);
chart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //this only should run if i really click on the chart, not if i zoom or drag it.
        ...     
    });

有简单的方法吗?这个 ClickListener、ScaleListener 和 ScaleGestureDetector gang bang 有点复杂:/

提前致谢

【问题讨论】:

    标签: android scale onclicklistener drag mpandroidchart


    【解决方案1】:

    http://android-developers.blogspot.com.tr/2010/06/making-sense-of-multitouch.html 中实现ScaleGestureDetector。 在 onScale 事件中,删除 OnClickListenerchart.setOnClickListener(null)。然后实现一个OnTouchListener 并在ACTION_UP 处添加onClickListener

    这应该可以让您避免在缩放时触发 onClick 事件。

    【讨论】:

    • 我已经编写了自己的 myBarChart 类并通过 BarChart 对其进行了扩展。在我的课上,我写了一个方法 setScaleGestureDetector()。我用它来设置探测器。所以现在当我缩放 myBarChart 时,代码不会在调试模式下进入 onScale() ......这不是实现它们的正确方法吗?我如何进入 onScale()? ://
    猜你喜欢
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多