Щелчки элемента Android Listview и кнопка «Назад» не работают с плавающим окном сверху

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

Однако есть эти две проблемы, которые беспокоят меня уже давно.

    - The back and menu buttons do not react to the touch events while the floating window is around
    - If the activity beneath the floating window displays a list view, the list elements do not react to click events. What is even more weird is that it does correctly handle any click event on the sub-components within the list element e.g. a check-box in each row in the list view. But the list element click handler would not get called no matter what despite showing the click animation.

Here is the relevant code. Any help is deeply appreciated.

final WindowManager.LayoutParams parameters = new WindowManager.LayoutParams(
    FrameLayout.LayoutParams.WRAP_CONTENT,FrameLayout.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE,
    WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_DIM_BEHIND,
    PixelFormat.TRANSLUCENT);

wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(<myView>, parameters);

person lalit_sam    schedule 06.11.2015    source источник


Ответы (1)


Я не знаю, почему это происходит, но если в вашем окне службы нет представления, на котором нужно сосредоточиться (например, edittext, searchview,...), вы можете добавить этот флаг: WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE.

person Ali.DM    schedule 20.12.2015