我有一个由WindowManager
管理的覆盖在上面的View
,就像这个问题中一样。
简单来说,它看起来像这样:
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)
,但不幸地它没有生效。我该怎么做呢?
view.getLayoutParams()
,然后更改了返回的 LayoutParams 的gravity
,执行了view.requestLayout()
,但什么也没变。 - Dmitry Frank