Android: Cambiar los bares de diseño de diseño agregados por WindowManager
-
28-10-2019 - |
Pregunta
Tengo superposición View
gestionado por WindowManager
, al igual que en esta pregunta.
Brevemente, se ve así:
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);
Funciona, pero si necesito cambiar los parámetros de diseño, necesito eliminar la vista y agregarla nuevamente, así:
wm.removeView(my_view);
wm.addView(my_view, my_view_layout_params);
No se ve muy hermoso. Traté de hacer my_view.setLayoutParams(my_view_layout_params)
, pero desafortunadamente no funciona. ¿Cómo puedo hacerlo?
Solución
WindowManager tiene un updateViewLayout()
Miembro ... ¿Seguramente eso es exactamente lo que quieres?
windowManager.updateViewLayout(my_view, my_view_layout_params);
Otros consejos
Puedes usar esto:
wm.updateViewLayout(my_view,my_view_layout_params);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow