我有这样的布局:
现在,我希望在选中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;
}
}
答案 0 :(得分: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;
}
}