Мое всплывающее окно должно автоматически закрываться при щелчке снаружи. Я уже прочитал эту топи c и установил фон для рисования в окне. Вот мой код:
protected int showPopupWindow(final int popupWidth) {
hideCalendarCellPopupWindow();
final LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(LAYOUT_INFLATER_SERVICE);
final View popupView = inflater.inflate(R.layout.popup_calendar_cell, null);
mCalendarCellPopupWindow = new PopupWindow(popupView, popupWidth, ViewGroup.LayoutParams.WRAP_CONTENT);
mCalendarCellPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
mCalendarCellPopupWindow.setOutsideTouchable(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mCalendarCellPopupWindow.setElevation(...);
}
mCalendarCellPopupWindow.showAtLocation(....);
}
private hideCalendarCellPopupWindow() {
if (mCalendarCellPopupWindow != null) {
mCalendarCellPopupWindow.dismiss();
mCalendarCellPopupWindow = null;
}
}
На Android 10 возникла проблема: вы можете коснуться экрана телефона и провести пальцем по экрану, в то время как «последние приложения» могут отображаться с такой жест.
Так что моя проблема в том, что когда я немного провожу пальцем снизу вверх, а затем go вниз - всплывающее окно не закрывается, более того, оно больше не может быть отклонено. , так как его свойство isShowing()
возвращает false. Я пытался вызвать popupWindow.dismiss()
метод внутри onPause()
, но в такой ситуации он также не вызывается.
Эта скринкаст может объяснить проблему с дополнительными возможностями: https://youtu.be/w2cQMvFMYkk
Каким может быть обходной путь?