我正在尝试创建具有半透明背景的自定义对话框.我设法使其通过以下代码工作:
getWindow().setBackgroundDrawableResource(R.color.bg_tran);
其中bg_tran ==#A0000000.但是,我宁愿使用XML,因为我将它用于几个不同的自定义对话框类.仅使用android:background不起作用.也没有将主题设置为@android:style / Theme.Translucent起作用.
我发现了几篇有关使用android:windowBackground属性的文章.但是android:windowBackground属性不存在.意味着eclipse不会将其显示为自动完成的选项.我已经检查了样式表和实际的layout.xml.由于我正在为2.2进行编译,因此我认为是该问题,并将构建目标更改为4.0.3.没有修复.无论如何,我什至都尝试过明确使用它,但是它不起作用.我搜索了Android Dev网站,甚至找不到描述此属性的页面.除了偶尔提及,没有任何东西.同样查找setBackgroundDrawableResource并不能告诉我什么是等效的XML属性标记.我非常困惑.我想念什么?
更新:
如果不清楚,是的,我尝试在主题中进行设置.不起作用.这是我定义的主题:
@color/bg_tran
true
wrap_content
wrap_content
解决方法:
您需要为对话框定义一个自定义主题.
true
@android:color/transparent
...
...
更新:
通过扩展Dialog类,可以在对话框中实现所需的功能.在此派生类中设置可绘制的窗口背景.
public class CustomDialog extends Dialog
{
public CustomDialog (final Context context)
{
super(context);
// This is the layout XML file that describes your Dialog layout
this.setContentView(R.layout.myDialogLayout);
getWindow().setBackgroundDrawableResource(R.color.bg_tran);
}
}
标签:dialog,transparent,xml,android
来源: https://codeday.me/bug/20191201/2080226.html