关于自定义dialog动态设置宽度没有效果问题

在代码中设置dialog的宽度为屏幕的宽度80%
Window w = dialog.getWindow();
LayoutParams lp = w.getAttributes();
w.setGravity(Gravity.CENTER);
lp.width = (int) (display.widthPixels * 0.8);
lp.height = LinearLayout.LayoutParams.WRAP_CONTENT;
w.setAttributes(lp);

原本以为就这么简简单单解决掉了问题,但是!!!
关于自定义dialog动态设置宽度没有效果问题_第1张图片

WTF?费了好大功夫找到这个问题所在

"wrap_content"
        android:layout_height="wrap_content"
        android:text="价格和库存是必填选项"
        android:textColor="@color/text"
        android:textSize="@dimen/sp14"
        android:layout_marginLeft="@dimen/dp7"/>

嗯,就是这个width是自适应的原因,把这个设置成match_parent:
关于自定义dialog动态设置宽度没有效果问题_第2张图片
另外发现根目录下的直属子布局宽度应该是充满父布局,否则设置适应屏幕的80%就会没有效果。

你可能感兴趣的:(控件)