此处的 Android 输入事件文档似乎暗示在事件侦听器中返回 false 将导致事件继续传递给其他侦听器。例如
OnTouchListener touchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// should continue on to other views
return false;
}
};
问题是,如果我在同一个布局中有两个按钮并且我单击一个按钮,我希望事件会继续到所有视图,因为我返回 false,例如:
Button submitButton = (Button) findViewById(R.id.submit_button);
submitButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println("--> submitButton");
return false;
}
});
Button clearButton = (Button) findViewById(R.id.clear_button);
clearButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println("--> clearButton");
return false;
}
});
由于提交按钮的侦听器返回 false 我希望点击结果被发送到清除按钮,但输出始终是:
--> submitButton
--> submitButton
由于我似乎误解了这篇文章,有人可以解释事件是如何在视图中传播的吗?