2015-07-21 51 views
2

Android 5.1正确呈现此对话框,但kitkat 4.4.4及以下显示黑色边框而不是阴影。Android API 19支持AlertDialog黑色边框代替阴影

看来,android:windowBackground是负责。我尝试了不同的drawables作为背景,尝试过GenymotionAndroid SDK仿真器,尝试过旧的支持库,但没有成功。我没有为这个对话框设置任何样式。它从Fragment显示。

我在logcat中看到的唯一错误 - eglSurfaceAttrib没有实现

AlertDialog black border

+0

我正在使用DialogFragment,它似乎连接到问题,独立AleertDialog.Builder按预期工作。 – kemsky

回答

1

这主要是我的错,我是不断变化的窗口属性来动态设置对话框的宽度,但它似乎是错误的方式:

WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
lp.height = WindowManager.LayoutParams.WRAP_CONTENT; 
lp.width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, width, getResources().getDisplayMetrics()); 
alert.getWindow().setAttributes(lp); 

有必要使用alert.getWindow()。getAttributes()获取属性,而不是创建新实例。

1

边框,圆润的边角和利润都是由机器人定义:windowBackground。

尝试下面的行添加到您的Java文件:

dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);