【问题标题】:Touch event on FrameLayoutFrameLayout 上的触摸事件
【发布时间】:2013-09-29 02:54:37
【问题描述】:

我有这样的布局:

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

现在我想在选中Checkbox 时捕获FrameLayout 上的触摸事件。我让它使用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;
  }
}

【问题讨论】:

    标签: android events touch android-framelayout


    【解决方案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;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 2019-05-09
      相关资源
      最近更新 更多