Android API 19支持AlertDialog黑色边框而不是阴影

时间:2015-07-21 18:22:11

标签: android android-layout

Android 5.1 正确显示此对话框,但 kitkat 4.4.4 及以下显示黑色边框而非阴影。

似乎 android:windowBackground 对此负责。我尝试了不同的drawables用于后台,尝试了 Genymotion Android SDK模拟器,尝试了较旧的支持库但没有成功。我没有为此对话框设置任何样式。它显示在Fragment

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

AlertDialog black border

2 个答案:

答案 0 :(得分:1)

边框,圆角和边距均由android:windowBackground定义。

尝试将以下行添加到您的java文件中:

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

答案 1 :(得分: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()来获取属性,而不是创建新实例。