Ste*_*hev 5 android dialog click
我有一个对话框:
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.location_dialog);
dialog.setTitle("My dialog");
dialog.setMessage("My dialog's content");
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
dialog.show();
Run Code Online (Sandbox Code Playgroud)
我希望能够检测对话框行外的触摸.我可以使用内置方法轻松检测对话框区域外的任何触摸
dialog.setCanceledOnTouchOutside(true);
Run Code Online (Sandbox Code Playgroud)
但是如何检测这个区域内的触摸?

创建Dialog的扩展并覆盖必要的方法:dispatchTouchEvent或onTouchEvent(来自docs:这对于处理窗口边界外发生的触摸事件非常有用,其中没有视图可以接收它.)
更新:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
Rect dialogBounds = new Rect();
getWindow().getDecorView().getHitRect(dialogBounds);
if (dialogBounds.contains((int) ev.getX(), (int) ev.getY())) {
Log.d("test", "inside");
} else {
Log.d("test", "outside");
}
return super.dispatchTouchEvent(ev);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2949 次 |
| 最近记录: |