AndroidJiang/StockChart

请教小哥 我移植到3.10后 关于高亮的问题...

wsz9903011 opened this issue · 4 comments

你的demo 按住不放(1s) 出现高亮十字, 而我的怎么会是按住不能出现高亮,需要手指点击(松开)才会出现。 这样导致点击屏幕无法取消高亮 大神用了啥 秘密方法......

搞定了......

怎么搞得

怎么搞得
在BarLineChartTouchListener.java找到下面这个函数(方法)

    /*取消单机高亮,改为长按*/
    @Override
    public boolean onSingleTapUp(MotionEvent e) {
        mChart.highlightTouch(null);//这个方法在3.X 已经取消了 但为了能单击取消 高亮只能重新放上
         /*  mLastGesture = ChartGesture.SINGLE_TAP;
    OnChartGestureListener l = mChart.getOnChartGestureListener();

        if (l != null) {

            l.onChartSingleTapped(e);
        }

        if (!mChart.isHighlightPerTapEnabled()) {
            return false;
        }
        Highlight h = mChart.getHighlightByTouchPoint(e.getX(), e.getY());
        performHighlight(h, e);*/

        return super.onSingleTapUp(e);
    }

记得好像还要再改一个地方有点忘了 ,你可以在原作者的程序的 barChart.highlightValue(new Highlight(h.getX(),0,-1));这里下断,然后单步执行, 看下他改动了哪里,你照着改就行。最好是自己重新定义一个方法,实现,不要改MP里面的源码。

怎么搞得
在BarLineChartTouchListener.java找到下面这个函数(方法)

    /*取消单机高亮,改为长按*/
    @Override
    public boolean onSingleTapUp(MotionEvent e) {
        mChart.highlightTouch(null);//这个方法在3.X 已经取消了 但为了能单击取消 高亮只能重新放上
         /*  mLastGesture = ChartGesture.SINGLE_TAP;
    OnChartGestureListener l = mChart.getOnChartGestureListener();

        if (l != null) {

            l.onChartSingleTapped(e);
        }

        if (!mChart.isHighlightPerTapEnabled()) {
            return false;
        }
        Highlight h = mChart.getHighlightByTouchPoint(e.getX(), e.getY());
        performHighlight(h, e);*/

        return super.onSingleTapUp(e);
    }

记得好像还要再改一个地方有点忘了 ,你可以在原作者的程序的 barChart.highlightValue(new Highlight(h.getX(),0,-1));这里下断,然后单步执行, 看下他改动了哪里,你照着改就行。最好是自己重新定义一个方法,实现,不要改MP里面的源码。

老哥你这个取消单击可以在不修改源码的情况下重写吗?,因为我也是依赖最新的3.10的MP