我有列表视图。用户可以在全屏Window.FEATURE_NO_TITLE)
上打开覆盖此列表视图的对话框。当用户触摸此对话框的背景时,它会关闭。
我需要将此触摸事件委托给列表视图。我的意思是,在MotionEvent.ACTION_DOWN
之后我需要关闭对话框(它工作正常),并在列表视图上启动MotionEvent.ACTION_DOWN
。
我试过这样的事情:
((LinearLayout) findViewById(R.id.dialog_bg)).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
MotionEvent motionEvent = MotionEvent.obtain(event);
activity.findViewById(R.id.fr_projects_list).dispatchTouchEvent(motionEvent);
close();
break;
default:
break;
}
return false;
}
});
它在列表视图上启动ACTION_DOWN
。但那就是全部。 ACTION_MOVE和其他人不起作用= /
答案 0 :(得分:1)
您只派遣ACTION_DOWN
这就是您没有采取任何其他行动的原因。
尝试调度所有操作。
((LinearLayout) findViewById(R.id.dialog_bg)).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
MotionEvent motionEvent = MotionEvent.obtain(event);
activity.findViewById(R.id.fr_projects_list).dispatchTouchEvent(motionEvent);
if(event.getAtction==MotinEvent.ACTION_UP) close();
return false;
}
});