如何阻止Action_Move和Action_touch事件进入android中的父视图

时间:2013-12-12 14:06:02

标签: android ontouchlistener

我在视图寻呼机内有一个圆形和三角形图像。

我正在尝试使用触摸式侦听器沿着圆形图像移动三角形图像。 但是当我移动三角形时,屏幕/片段也移动到下一个,因为我正在使用视图寻呼机。

我这样做是为了在调用三角形或圆形的触摸式监听器时,不会调用触摸侦听器上的查看寻呼机。

更新:添加代码

mCurrTempIndicator.setOnTouchListener(new MyOnTouchListener());

private class MyOnTouchListener implements OnTouchListener {

    private double startAngle;

    @Override
    public boolean onTouch(View v, MotionEvent event) {

        switch (event.getAction()) {

            case MotionEvent.ACTION_DOWN:

                if (mThermostatCentreXOnScreen == 0 || mThermostatCentreYOnScreen == 0){

                    int centerXOnImage=mThermostatBgrd.getWidth()/2;
                    int centerYOnImage=mThermostatBgrd.getHeight()/2;

                    mThermostatCentreXOnScreen=mThermostatBgrd.getLeft()+centerXOnImage;
                    mThermostatCentreYOnScreen=mThermostatBgrd.getTop()+centerYOnImage;

                    mStartPosX = event.getRawX();
                    mStartPosY = event.getRawY();

                    float dx = event.getX() - mThermostatCentreXOnScreen;
                    float dy = event.getY() - mThermostatCentreYOnScreen;

                    float r = FloatMath.sqrt((dx * dx) + (dy * dy));

                    ////
                    break;

            case MotionEvent.ACTION_MOVE:

                dx = event.getX() - mThermostatCentreXOnScreen;
                dy = event.getY() - mThermostatCentreYOnScreen;

                r = FloatMath.sqrt((dx * dx) + (dy * dy));

                mEndPosX = event.getX();
                mEndPosY = event.getY();

            case MotionEvent.ACTION_UP:
                allowRotating = true;
                break;
        }

        return true;
    }

谢谢和问候, 晴天

1 个答案:

答案 0 :(得分:0)

如果return true中的onTouchListener代表三角形和圆圈,则会消耗该事件,而父母则不会接收该事件。