Не закрывать всплывающее окно при внешнем нажатии - PullRequest
0 голосов
/ 26 мая 2020

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

LayoutInflater inflater = (LayoutInflater)
                mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
        View popupView = inflater.inflate(R.layout.custom_loading, null);
        int width = LinearLayout.LayoutParams.WRAP_CONTENT;
        int height = LinearLayout.LayoutParams.WRAP_CONTENT;
        boolean focusable = false;
        popupWindow = new PopupWindow(popupView, width, height, focusable);
        popupWindow.setElevation(20);
        popupWindow.setBackgroundDrawable(ContextCompat.getDrawable(mContext, R.drawable.transparent_back));
        popupWindow.setTouchable(true);
        popupWindow.setOutsideTouchable(true);
        popupWindow.setTouchInterceptor((View view, MotionEvent motionEvent) -> {return false;});
        popupWindow.showAtLocation(v, Gravity.CENTER, 0, 0);// v is a view passed as a parameter to the function

Заранее спасибо! :)

1 Ответ

0 голосов
/ 27 мая 2020

Исправлено! Новый код:

 boolean focusable = false;
 popupWindow.setBackgroundDrawable(null);

Удалено следующее:

popupWindow.setTouchable(true);
popupWindow.setOutsideTouchable(true);
popupWindow.setTouchInterceptor((View view, MotionEvent motionEvent) -> {return false;});
...