2

我有这样的布局:

  • 相对布局
    • 框架布局
      • 片段(谷歌地图图层)
    • 复选框
    • ...其他按钮和东西

现在我想在选中FrameLayout时捕获触摸事件。Checkbox我得到了它dispatchTouchEvent而不是onTouch,但问题是当我按下复选框按钮时我也会得到触摸响应。我想排除它,但我不知道它是如何工作的......

我需要创建一个新课程还是什么?

这是我的代码,被剥离了很多:

public class Main extends Activity implements LocationListener, OnTouchListener {

  @Override
  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    FrameLayout frame = (FrameLayout) findViewById(R.id.mapFrame);
    frame.setOnTouchListener((OnTouchListener) this);
  }

  public boolean onTouch(View v, MotionEvent e) {

    //doing things

    return true;
  }
}
4

1 回答 1

1

这是你想要做的吗?

public class Main extends Activity implements LocationListener, OnTouchListener {

  private FrameLayout mFrame;

  @Override
  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    mFrame = (FrameLayout) findViewById(R.id.mapFrame);
    mFrame.setOnTouchListener(this);
  }

  public boolean onTouch(View v, MotionEvent e) {

    if(mFrame == v) {

      // do things

      return true;
    }

    return false;
  }
}
于 2013-09-30T10:12:03.050 回答