2

您是否注意到 Android OS 11(API 30)的任何 UI 问题。我有一个全屏透明对话框,中间有一个进度条,它一直工作到 Android 10,不知道它在 Android 11 中显示黑色背景。如果你们对这个问题有任何想法,请分享。

这就是我设置对话框背景透明的方式:

getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
4

3 回答 3

0

为同样的问题而苦苦挣扎,让我找到了这个解决方案;

    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 解决了这个问题。可能还有其他一些方法,例如将背景设置为资源。这是适合我的。

于 2020-11-06T11:44:17.213 回答
0

没有更多细节,我只能猜测解决方案。但我相信这是一个LayoutParams正在被取代的问题。相反,我建议修改LayoutParams已有的视图/窗口。

获取布局参数:

WindowManager.LayoutParams params = window.attributes;

根据需要修改属性,例如params.width = WRAP_CONTENT然后设置修改后的布局参数:

window.attributes = params

我向所有人推荐这个解决方案LayoutParams,它通常为更多的 android 版本提供最佳解决方案。并且必须设置较少的属性。

于 2021-09-09T06:02:44.300 回答
0

好吧,setBackgroundDrawable()现在已弃用,这可能就是您遇到此问题的原因。另一种方法是setBackgroundResource(R.drawable.your_drawable)您可以用您的颜色替换可绘制对象。

于 2020-09-21T20:37:31.880 回答