我正在创建一个Android应用程序,在该应用程序中,我使用服务和窗口管理器在所有应用程序之上显示一个浮动视图。我试图添加WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES在我的窗口管理器参数,以使我的布局覆盖显示剪贴画。但这在我的情况下似乎行不通。
我已经试着用这两种方式添加:
使用XML样式的
params =新的WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,( WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT)( WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES,WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,,PixelFormat.TRANSLUCENT);
也不起作用。我不确定我是否正确地应用了布局参数。请帮我解决这个问题。提前谢谢。
编辑:
这就是我在服务中实现泡沫的方式:
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);LayoutInflater inflater = (LayoutInflater) if (计量器!=空) mLayout = inflater.inflate(R.layout.my_layout,null,false);
WindowManager.LayoutParams params;params =新的WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,( WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT)( WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES,WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,,PixelFormat.TRANSLUCENT);
windowManager.addView(mLayout,params);
通过使用上述方法,我可以在其他应用程序上显示我的观点。但问题是,我的观点并没有与显示断电重叠。当android处于景观模式时,就会发生这种情况。
解决方案:
我只是通过添加这一行代码(如Answere中所建议的)来解决这个问题:
params.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
发布于 2019-10-13 00:07:59
尝试在您的Activity
中设置
window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
https://stackoverflow.com/questions/58361003
复制