Android: делегировать событие касания основному представлению

У меня следующая иерархия: Activity -> PopupWindow -> CustomView

Мой PopupWindow сам квадратный, но прозрачный, поэтому вы можете видеть Activity, находящуюся на заднем плане. CustomView - это круг, встроенный в PopupWindow. чтобы вы могли видеть, что Activity находится в фоновом режиме. CustomView - это ...

У меня следующая иерархия: Activity -> PopupWindow -> CustomView

Мой PopupWindow сам квадратный, но прозрачный, поэтому вы можете видеть Activity, находящуюся на заднем плане. CustomView - это круг, встроенный в PopupWindow. чтобы вы могли видеть, что Activity находится в фоновом режиме. CustomView - это ...

У меня следующая иерархия: Activity -> PopupWindow -> CustomView

Мой PopupWindow сам квадратный, но прозрачный, поэтому вы можете видеть Activity, находящуюся на заднем плане. CustomView - это круг, встроенный в PopupWindow. alt text

На данный момент я добился того, что

  1. Пользователь нажимает на зеленый кружок, и я вызываю «кое-что»
  2. Пользователь щелкает за пределами PopupWindow , и событие касания отправляется в Activity.

Теперь отсутствует часть для отправки любого события касания, которое происходит внутри PopupWindow , но за пределами CustomView (кружок), в Activity.

Я уже знаю, как чувствовать, когда прикосновение выходит за пределы моего круга. У меня просто проблемы с делегированием его Activity.

В моем CustomView у меня есть следующее в onTouch

if (radiusTouch > maxRadius) {
    return false;
}

В моем PopupWindow я уже установил следующее, но он никогда не вызывается:

popup.setTouchInterceptor(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        Log.i(TAG, "PopupWindow :: onTouch()");
        return false;
    }
});

Что-нибудь еще, что мне нужно сделать, чтобы полностью передать событие касания Activity?

21
задан Ragunath Jawahar 2 April 2013 в 05:54
поделиться