我有View
管理的重叠WindowManager
,就像this question一样。
简而言之,它看起来像这样:
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);
它有效,但是如果我需要更改布局参数,我需要删除View并再次添加它,就像那样:
wm.removeView(my_view);
wm.addView(my_view, my_view_layout_params);
它看起来不是很漂亮。我尝试my_view.setLayoutParams(my_view_layout_params)
,但不幸的是它不起作用。我该怎么办?
答案 0 :(得分:15)
WindowManager有一个updateViewLayout()
成员......当然这正是你想要的?
windowManager.updateViewLayout(my_view, my_view_layout_params);
答案 1 :(得分:4)
您可以使用:
wm.updateViewLayout(my_view,my_view_layout_params);