我有一个自定义 View 子类,用于渲染我的图形,还有另一个 View 子类(实际上是 LinearLayout 的一个子类),有时用于覆盖图形信息。第二个视图包含一个 ImageView,我将其用作触发事件的按钮。
正如我已经实现的那样,在第一个视图接收 onTouchEvent 和在其子视图上调用 dispathTouchEvent() 和 ImageView 的 onClickListener 的 onClick() 被调用之间存在意外延迟。以下是相关代码:
@Override
public boolean onTouchEvent(MotionEvent event)
{
if ( getPopupRect().contains(event.getX(), event.getY()) )
{
// translate to relative coordinates
PointF popupOrigin = getPopupPoint();
event.setLocation(event.getX() - popupOrigin.x, event.getY() - popupOrigin.y);
mPopup.dispatchTouchEvent(event);
}
...
}
在我触摸并释放“主”视图之前,不会调用子视图的 onClick() 方法。
问题:如何消除或最小化这种延迟,以便在合理的时间内调用 onClick() 而无需进一步的用户操作?