Mik*_*e G 0 java android android-layout
我想使用侦听器从屏幕上捕获所有运动事件,例如,如果我在屏幕上从上到下滑动,将会有一个向下的触摸、触摸移动和向上触摸。由于此触摸将覆盖多个视图,例如线性视图、按钮和文本字段,我尝试将触摸侦听器附加到所有视图,但我会得到错误数据,例如我会在没有触摸的情况下进行触摸等等。请告知一种可以实现这一目标的方法。
处理此问题的一个好方法是将OnTouchListener附加到所有视图的父 ViewGroup(布局)。
例如,如您在问题中提到的,具有多个视图(线性视图、按钮和文本字段)的 RelativeLayout。你可以这样做:
RelativeLayout currentView = (RelativeLayout) findViewById( R.id.MyRelativeLayout );
currentView.addView(aSubView);
currentView.addView(aSubButton);
currentView.addView(aSubTextView);
currentView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// Here you will receive all the motion event.
return false;
}
});
Run Code Online (Sandbox Code Playgroud)