Run*_*ion 27 android ontouchlistener touch-event
我有一个RelativeLayout,这个布局有近10个视图.
我已经设置OnTouchListener了这个布局并在其中做了一些工作并返回true.
当我触摸没有View的布局(空区域的意思)时,这个监听器工作正常.如果我触摸此布局的子视图,则此侦听器不会触发...
从文档中,我了解到我们可以onInterceptTouchEvent()通过扩展ViewGroup 来覆盖(所以这里是RelativeLayout)并在子视图消耗此事件之前处理触摸事件...
这将做一个技巧,但我需要通过将RelativeLayout替换为CustomRelativeLayout来修改我需要此功能的许多xml文件.
所以我的问题是:
有没有办法RelativeLayout在RelativeLayout消费事件中的子视图之前处理(ofcourse ViewGroup)的触摸事件?我不想延长RelativeLayout......
Mic*_*kov 21
试着覆盖
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return super.dispatchTouchEvent(ev);
}
Run Code Online (Sandbox Code Playgroud)
的Activity.此方法是第一个处理触摸事件的方法.但在这种情况下,您需要使用当前的视图坐标
尝试将onTouchListener添加到RelativeLayout
RelativeLayout rl = (RelativeLayout) findViewById( R.id.relativeLauout );
rl.setOnTouchListener( new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// do something
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
或使用 Activity 中的 onTouchEvent 方法
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return super.onTouchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16224 次 |
| 最近记录: |