你注意到Android OS 11(API 30)的UI问题了吗?我有一个全屏透明的对话框,中间有一个进度条,它一直工作到Android 10,不知道它在Android 11中显示了黑色的背景。如果你们对这个问题有任何想法,请分享。
这就是我如何设置对话框背景透明的:
getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));发布于 2020-09-22 04:37:32
嗯,setBackgroundDrawable()现在被弃用了,这可能就是你遇到这个问题的原因。另一种选择是setBackgroundResource(R.drawable.your_drawable),在那里你可以用你自己的颜色替换可绘制的。
发布于 2020-11-06 19:44:17
同样的问题让我找到了这个解决方案;
Window window = dialog.getWindow();
window.setBackgroundDrawable(new ColorDrawable(Color.argb(58, 0, 0, 0)));
dialog.requestWindowFeature(1);
dialog.setContentView(R.layout.dialog_layout);//Set contentView after setting background drawable
dialog.show();简单的说,设置后台可绘制后设置contentView解决了这个问题。可能还有其他一些方法,比如将背景设置为资源。这就是适合我的。
发布于 2021-09-09 06:02:44
没有更多的细节,我只能猜测解决方案。但我认为这是一个LayoutParams正在被取代的问题。相反,我建议修改视图/窗口已有的LayoutParams。
获取布局参数:
WindowManager.LayoutParams params = window.attributes;根据需要修改属性,例如params.width = WRAP_CONTENT,然后设置修改后的布局参数:
window.attributes = params我建议这个解决方案适用于所有的LayoutParams,它通常会为更多的安卓版本提供最佳的解决方案。并且需要设置的属性更少。
https://stackoverflow.com/questions/63999523
复制相似问题