重写DialogFragment里的onStart方法
@Override
public void onStart() {
super.onStart();
// 设置宽度为屏宽, 靠近屏幕底部。
Window win = getDialog().getWindow();
// 一定要设置Background,如果不设置,window属性设置无效
win.setBackgroundDrawable( new ColorDrawable(Color.TRANSPARENT));
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics( dm );
WindowManager.LayoutParams params = win.getAttributes();
params.gravity = Gravity.BOTTOM;
// 使用ViewGroup.LayoutParams,以便Dialog 宽度充满整个屏幕
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
win.setAttributes(params);
}
关键部分是
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics( dm );