如果自定义DialogFragment宽高需要自适应(即View ---wrap_content)
@Override
public void onStart() {
super.onStart();
Dialog dialog = getDialog();
if (dialog != null) {
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
WindowManager.LayoutParams params = getDialog().getWindow()
.getAttributes();
params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
// params.windowAnimations = R.style.bottomSheet_animation;//动画
getDialog().getWindow().setAttributes(params);
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getDialog().setCanceledOnTouchOutside(true);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
return inflater.inflate(R.layout.dialog_seal_notice, container, false);
}
如果宽高固定值、或者百分比的话,可以这样设置
if (getDialog().getWindow() == null) return;
DisplayMetrics displayMetrics = new DisplayMetrics();
getDialog().getWindow().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
getDialog().getWindow().getAttributes().width = (int) (displayMetrics.widthPixels);
getDialog().getWindow().getAttributes().height = (int) (displayMetrics.heightPixels*0.7);
getDialog().getWindow().getAttributes().gravity = Gravity.TOP;