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?

¿Fue útil?

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
scroll top