Android DialogFragment贴合手机底部和左右边缘

Android DialogFragment贴合手机底部和左右边缘_第1张图片

重写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 );

你可能感兴趣的:(android)