Android DialogFragment-获取对话框的宽度

Android DialogFragment-获取对话框的宽度,android,android-dialog,android-dialogfragment,Android,Android Dialog,Android Dialogfragment,我试图在运行时获取对话框片段的宽度,我尝试了两种方法,但都失败了 第一:在创建对话框后,在onCreateDialog内部 public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); ... ... AlertDialog dialog = builder.create

我试图在运行时获取
对话框片段的宽度,我尝试了两种方法,但都失败了

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

public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    ...
    ...
    AlertDialog dialog =  builder.create();
    width = dialog.getWindow().getAttributes().width;
    return dialog;
}   
宽度
设置为-1

第二:

public void onStart() {
    width = getDialog().getWindow().getAttributes().width;
}

width
被设置为-2

使用
ViewTreeObserver
onCreateDialog

中设置的
ViewTreeObserver解决了这个问题。请尝试或@FaisalAli这些方法似乎适用于活动,而不是对对象进行分段。