#android
#Android
Вопрос:
LayoutInflater li = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY | WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.RIGHT | Gravity.TOP;
myview = li.inflate(R.layout.locked_layout, null);
wm.addView(myview);
Это код, который я использовал для наложения макета на экран. Работает только кнопка «ДОМОЙ». Но кнопка «НАЗАД» не работает. Я хочу, чтобы работали оба. Я что-нибудь упускаю? Пожалуйста, помогите мне!! Заранее спасибо
Ответ №1:
Добавьте также этот флаг, мой друг:
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
Комментарии:
1. Большое спасибо, вы спасли мой день!
2. Мне нужно установить setOnTouchEvent на мой взгляд, так как я могу решить эту проблему. Спасибо!
3. Сработало как шарм 🙂
4. У меня это есть, и все равно приложение зависает при нажатии кнопки «Назад», в чем корень проблемы?
Ответ №2:
У меня это сработало!!
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
WindwoManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.RGBA_8888);
params.gravity = Gravity.RIGHT | Gravity.TOP;
Комментарии:
1. Константа
1064
соответствуетWindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
и1
toPixelFormat.RGBA_8888
. Было бы понятнее указать их в коде.