Android问题解决: Alertdialog 宽度铺满解决办法

LinearLayout linearLayout = new LinearLayout(context);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
    linearLayout.setOrientation(LinearLayout.VERTICAL);
    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.
            LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(0, 0, 0, 0);
    param.setMargins(0, 0, 0, 0);
    linearLayout.addView(datapicker, param);
    linearLayout.addView(textView, param);WindowManager windowManager = getWindowManager();


    Display display = windowManager.getDefaultDisplay();
    WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
    lp.width = (int) (display.getWidth()); //设置宽度
    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
    dialog.getWindow().setAttributes(lp);

这段代码是代码添加一个线性布局,布局然后添加一个日历然后添加一行文本,下边是 设置宽度的,但是,在MI3 4.4.4(Api 19)显示正常,在Api23 上却是如图(只是下半截)

Android问题解决: Alertdialog 宽度铺满解决办法_第1张图片
Paste_Image.png

多方查阅无效,最后猜测可能是设置背景图的原因,把它替换掉!
加上

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

再次运行解决!
可是新问题出来了,会闪一下白屏。
那么换一种思维。完美解决!

dialog.getWindow().setBackgroundDrawable(null);
Android问题解决: Alertdialog 宽度铺满解决办法_第2张图片
Paste_Image.png

你可能感兴趣的:(Android问题解决: Alertdialog 宽度铺满解决办法)