要解决“Android:自定义布局的DialogFragment的宽度没有像AlertDialog那样完全显示”的问题,可以尝试以下方法:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_dialog, container, false);
// 获取屏幕宽度
DisplayMetrics metrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenWidth = metrics.widthPixels;
// 设置宽度为屏幕宽度的80%
int dialogWidth = (int) (screenWidth * 0.8);
view.setLayoutParams(new ViewGroup.LayoutParams(dialogWidth, ViewGroup.LayoutParams.WRAP_CONTENT));
return view;
}
@Override
public void onStart() {
super.onStart();
// 获取Dialog对象
Dialog dialog = getDialog();
// 设置宽度为屏幕宽度的80%
if (dialog != null) {
int dialogWidth = (int) (getResources().getDisplayMetrics().widthPixels * 0.8);
dialog.getWindow().setLayout(dialogWidth, ViewGroup.LayoutParams.WRAP_CONTENT);
}
}
这两种方法都可以根据屏幕宽度的百分比来设置Dialog的宽度。你可以根据自己的需求调整百分比值。