Android API 19支持AlertDialog黑色边框代替阴影
问题描述:
Android 5.1正确呈现此对话框,但kitkat 4.4.4及以下显示黑色边框而不是阴影。Android API 19支持AlertDialog黑色边框代替阴影
看来,android:windowBackground是负责。我尝试了不同的drawables
作为背景,尝试过Genymotion和Android SDK仿真器,尝试过旧的支持库,但没有成功。我没有为这个对话框设置任何样式。它从Fragment
显示。
我在logcat中看到的唯一错误 - eglSurfaceAttrib没有实现
答
这主要是我的错,我是不断变化的窗口属性来动态设置对话框的宽度,但它似乎是错误的方式:
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()获取属性,而不是创建新实例。
答
边框,圆润的边角和利润都是由机器人定义:windowBackground。
尝试下面的行添加到您的Java文件:
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
我正在使用DialogFragment,它似乎连接到问题,独立AleertDialog.Builder按预期工作。 – kemsky