Android: Измените Layoutparams of View, добавленные Windowmanager
-
28-10-2019 - |
Вопрос
У меня есть наложение View
управляемый WindowManager
, как в этот вопрос.
Вкратце, это похоже на это:
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
my_view_layout_params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
wm.addView(my_view, my_view_layout_params);
Это работает, но если мне нужно изменить параметры макета, мне нужно удалить представление и добавить его снова, как это:
wm.removeView(my_view);
wm.addView(my_view, my_view_layout_params);
Это выглядит не очень красиво. Я пытался сделать my_view.setLayoutParams(my_view_layout_params)
, но, к сожалению, это не работает. Как мне это сделать?
Решение
Windowsmanager имеет updateViewLayout()
Член ... Конечно, это именно то, что вы хотите?
windowManager.updateViewLayout(my_view, my_view_layout_params);
Другие советы
Вы можете использовать это:
wm.updateViewLayout(my_view,my_view_layout_params);
Не связан с StackOverflow