Android 自定义dispatchTouchEvent导致忽略View.OnClickListener
我对自定义ViewGroups dispatchTouchEvent进行了以下调整Android 自定义dispatchTouchEvent导致忽略View.OnClickListener,android,android-custom-view,viewgroup,Android,Android Custom View,Viewgroup,我对自定义ViewGroups dispatchTouchEvent进行了以下调整 @Override public boolean dispatchTouchEvent(MotionEvent ev) { final float xf = ev.getX(); final float yf = ev.getY(); final float scrolledXFloat = xf + getScrollX(); final float scrolledYFloat
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
final float xf = ev.getX();
final float yf = ev.getY();
final float scrolledXFloat = xf + getScrollX();
final float scrolledYFloat = yf + getScrollY();
final int scrolledXInt = (int) scrolledXFloat;
final int scrolledYInt = (int) scrolledYFloat;
if(isDetailOpened()){
mDetailView.getHitRect(mTempRect);
if(mTempRect.contains(scrolledXInt,scrolledYInt)){
// offset the event to the view's coordinate system
final float xc = scrolledXFloat - mDetailView.getLeft();
final float yc = scrolledYFloat - mDetailView.getTop();
MotionEvent cp = MotionEvent.obtain(ev);
cp.setLocation(xc, yc);
boolean consumed = mDetailView.dispatchTouchEvent(cp);
cp.recycle();
return consumed;
}
}
return super.dispatchTouchEvent(ev);
}
mDetailView在其onTouchEvent中获取事件,但不能正确激发onClickListener,但例如GestureDetector工作正常。有人知道这是什么原因吗?
mDetailView不是视图层次结构的一部分。我正在dispatchDraw中手动绘制它。也许没有将视图附加到窗口可能是一个问题。有关于这方面的信息吗?谢谢问题在于没有在ViewGroup中插入我的详细视图。当mDetailView成为我的自定义视图组的子视图时,问题就解决了