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?

Était-ce utile?

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