Android Нажмите Через PopupWindow

Я создал класс, который расширяет всплывающее окно. его конструктор выглядит примерно так

super(builder.context.get());

this.setWindowLayoutMode(ViewGroup.LayoutParams.MATCH_PARENT,
        ViewGroup.LayoutParams.MATCH_PARENT);
setFocusable(true);
setBackgroundDrawable(new BitmapDrawable());
setTouchInterceptor(onTouchListener);
FrameLayout frameLayout = new FrameLayout(builder.context.get());
LayoutInflater inflater = (LayoutInflater) builder.context.get().getSystemService(
        Context.LAYOUT_INFLATER_SERVICE);
View overlayBase = inflater.inflate(R.layout.tutorial_view_items, null, false);
frameLayout.addView(builder.backgroundView);
frameLayout.addView(overlayBase);
setContentView(frameLayout);

onTouchListener выглядит следующим образом:

private OnTouchListener onTouchListener = new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        float x = event.getX();
        float y = event.getY();
        Log.d(TAG, "Received");

        if (Math.pow(x - coordinates[0], 2) + Math.pow((y - coordinates[1]), 2) < Math.pow(radius, 2)) {
            Log.d(TAG, "bubbled through");
            return false;
        }
        return true;
    }
};

чтобы на самом деле отобразить всплывающее окно, я звонюSomePopupWindow.showAtLocation(SomeActivity.getWindow().getDecorView().getRootView(), Gravity.CENTER, 0, 0);

Наглядно представлен, вот продукт, о котором идет речь

TouchListener отвечает, но ввод не отправляется в основное действие ИЛИ во всплывающее окно? (кнопка не отвечает, где, как если бы я должен был удалить сенсорный сенсор, кнопка работает нормально).

Обновить установка сенсорного слушателя на frameLayout (то есть представление содержимого popupwindow в данном случае) вместо самого popupwindow позволяет мне нажимать кнопки, определенные во всплывающем окне. по-прежнему ищет способ делегировать событие касания в основное действие / представление

РЕШЕНИЕ

Зарегистрируйте сенсорный перехватчик для всплывающего окна. Если вы хотите, чтобы действие обрабатывало его, предполагая, что у вас есть ссылка на действие, позвонитеsomeActivity.dispatchTouchEvent(someMotionEventPassedIntoTheTouchIntercepter);, если вы хотите, чтобы всплывающее окно обрабатывало даже прикосновение, позвонитеsomeView.dispatchTouchEvent(theMotionEventPassedToTouchInterceptor) к всплывающему окнупросмотр содержимого, как установлено во всплывающих окнахsetContentView(someView) метод.

Мой метод специально выглядел следующим образом

private OnTouchListener onTouchListener = new OnTouchListener() {
@Override
    public boolean onTouch(View v, MotionEvent event) {
        float x = event.getX();
        float y = event.getY();

        if (Math.pow(x - coordinates[0], 2) + Math.pow((y - coordinates[1]), 2) < Math.pow(
                radius, 2)) {
            activity.get().dispatchTouchEvent(event);
            return false;
        }
        frameLayout.dispatchTouchEvent(event);
        return true;
    }
};

Ответы на вопрос(2)

Ваш ответ на вопрос