Android 关于DialogFragment的充满及点击背景穿透

// 设置宽度为屏宽, 靠近屏幕底部。
Window win = getDialog().getWindow();
win.getAttributes().windowAnimations = R.style.CollectDialogAnimation;
// 一定要设置Background,如果不设置,window属性设置无效
win.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
WindowManager.LayoutParams params = win.getAttributes();
//params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; //这条就是控制点击背景的时候  如果被覆盖的view有点击事件那么就会直接触发(dialog消失并且触发背景下面view的点击事件)
params.gravity = Gravity.BOTTOM;
// 使用ViewGroup.LayoutParams,以便Dialog 宽度充满整个屏幕
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
win.setAttributes(params);

猜你喜欢

转载自blog.csdn.net/Keepsty/article/details/81359459