Android: LayoutParams de changement de vue ajoutée par WindowManager
-
28-10-2019 - |
Question
J'ai View
overlay géré par WindowManager
, comme dans cette question.
En bref, il ressemble à ceci:
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);
Il fonctionne, mais si je dois params changement de mise en page, je supprimer View et l'ajouter à nouveau, comme ça:
wm.removeView(my_view);
wm.addView(my_view, my_view_layout_params);
Il semble pas très beau. J'ai essayé de le faire my_view.setLayoutParams(my_view_layout_params)
, mais il ne fonctionne malheureusement pas. Comment puis-je faire?
La solution
WindowManager a un membre de updateViewLayout()
... sûrement c'est exactement ce que vous voulez?
windowManager.updateViewLayout(my_view, my_view_layout_params);
Autres conseils
Vous pouvez utiliser ceci:
wm.updateViewLayout(my_view,my_view_layout_params);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow