Android 如何检测用户是否触摸了屏幕的任何部分,而不是EditText的内部?
我猜这意味着整个屏幕都可以触摸。到底是怎么做到的Android 如何检测用户是否触摸了屏幕的任何部分,而不是EditText的内部?,android,Android,我猜这意味着整个屏幕都可以触摸。到底是怎么做到的 然后计算X,Y是否在EditText中。覆盖要实现此操作的活动中的onTouchEvent….并使用event.getX()和event.getY()获取X,Y坐标 但我建议您在发布问题之前必须彻底搜索。我建议您在回答问题之前进行一些研究。如果活动级别的onTOuchEvent位于某个包含的元素(例如复选框)上,则不会真正调用它。如果使用的是曲面视图,则此操作有效。请更新您的答案,说明如何确保事件在任何情况下都会一直冒泡到容器(活动)?顺便说一句
然后计算X,Y是否在EditText中。覆盖要实现此操作的活动中的onTouchEvent….并使用event.getX()和event.getY()获取X,Y坐标
但我建议您在发布问题之前必须彻底搜索。我建议您在回答问题之前进行一些研究。如果活动级别的onTOuchEvent位于某个包含的元素(例如复选框)上,则不会真正调用它。如果使用的是曲面视图,则此操作有效。请更新您的答案,说明如何确保事件在任何情况下都会一直冒泡到容器(活动)?顺便说一句,我确实重写了此方法,它根本没有被冒泡。FYIpublic boolean onTouch(视图v,MotionEvent事件){)似乎是调用的对象,通过将对主视图的引用设置为:LinearLayout myView=(LinearLayout)findViewById(R.id.mainLayoutId)子视图中的事件不会到达容器,它们会被子视图(如复选框atc)吞噬。问题是不言自明的。检测您是否触摸过屏幕上的任何位置,但不在其中一个屏幕ui元素的范围内。因此,想象一个有10个ui控件的活动。我想知道用户是否触摸过任何位置我们在一个特定的ui控件上例外。我试过什么?一种叫做“先思考再编码”的东西
@Override
public boolean onTouchEvent(MotionEvent event) {
int x = (int)event.getX();
int y = (int)event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return false;
}