DialogFragment - 获取对话框的宽度

Cal*_*alc 5 android android-dialog android-dialogfragment

我试图获得DialogFragment运行时的宽度,我尝试了两种失败的方法.

第一:onCreateDialog创建对话框后的内部

public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    ...
    ...
    AlertDialog dialog =  builder.create();
    width = dialog.getWindow().getAttributes().width;
    return dialog;
}   
Run Code Online (Sandbox Code Playgroud)

width 设置为-1

第二:

public void onStart() {
    width = getDialog().getWindow().getAttributes().width;
}
Run Code Online (Sandbox Code Playgroud)

width 设为-2

Cal*_*alc 2

使用ViewTreeObserverset解决了这个问题onCreateDialog