为了让自定义dialog的宽度充满屏幕,可能会在网上搜了各种各样的方法来实现这一目的,可能都失败了,这是为什么呢?因为自定义布局加载的位置不对,直接看图:
因为是在代码里面设置的dialog宽度全屏,而不是在styles里面,所以不能在创建dialog的时候加载自定义的布局,怎么实现Dialog的宽度全屏?为了清晰明了,贴图:
为了让dialog宽度全屏,在你dialog.show()后面添加:
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.width = (int)(display.getWidth()); //设置宽度
dialog.getWindow().setAttributes(lp);
或者因为默认的Dialog样式@android:style/Theme.Dialog 对应的style 有pading属性,所以也可以: