グラフィックをレンダリングするカスタム View サブクラスと、グラフィック情報のオーバーレイに使用する別の View サブクラス (実際には LinearLayout のサブクラス) があります。この 2 番目のビューには、イベントをトリガーするボタンとして使用する 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() メソッドは、「メイン」ビューに触れて離すまで呼び出されません。
質問: この遅延を削除または最小限に抑えるにはどうすればよいですか?