首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android 11 UI对话框透明度问题

Android 11 UI对话框透明度问题
EN

Stack Overflow用户
提问于 2020-09-22 04:25:48
回答 3查看 362关注 0票数 2

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

这就是我如何设置对话框背景透明的:

代码语言:javascript
复制
getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
EN

回答 3

Stack Overflow用户

发布于 2020-09-22 04:37:32

嗯,setBackgroundDrawable()现在被弃用了,这可能就是你遇到这个问题的原因。另一种选择是setBackgroundResource(R.drawable.your_drawable),在那里你可以用你自己的颜色替换可绘制的。

票数 0
EN

Stack Overflow用户

发布于 2020-11-06 19:44:17

同样的问题让我找到了这个解决方案;

代码语言:javascript
复制
    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解决了这个问题。可能还有其他一些方法,比如将背景设置为资源。这就是适合我的。

票数 0
EN

Stack Overflow用户

发布于 2021-09-09 06:02:44

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

获取布局参数:

代码语言:javascript
复制
WindowManager.LayoutParams params = window.attributes;

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

代码语言:javascript
复制
window.attributes = params

我建议这个解决方案适用于所有的LayoutParams,它通常会为更多的安卓版本提供最佳的解决方案。并且需要设置的属性更少。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63999523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档