java - 自定义 DialogFragment 窗口

标签 java android android-dialogfragment

我想调整我的 DiaglogFragment 窗口的宽度和高度,但下面的代码没有提供我的对话框窗口的调整大小版本,而是修改了主 Activity View 。我也试过修改xml但还是失败。

我不确定如何在这个上使用 getDialog(),仍然会出现一些错误。 dialog_fragment.xml 是我要修改的布局,以便完全自定义宽度和高度。

public static class TestDialogFragment extends DialogFragment {
    DialogFragment dialogFragment;
public DialogFragment newInstace() {
     dialogFragment = new TestDialogFragment();
    Log.d("Dialog Create", "sdf1");
    return dialogFragment;
}



@SuppressLint("NewApi")
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
                                      R.style.PopupTheme);
    builder.setTitle("TestDialogFragment");
    builder.setView(getContentView());
    Dialog dialog = builder.create();
    Log.d("Dialog Create", "sdf2");
    return dialog;

}

private View getContentView() {
    LayoutInflater inflater = getActivity().getLayoutInflater();

    LayoutParams params = getActivity().getWindow().getAttributes();

    params.height = 200; //fixed height
    params.width = 200; //fixed width

    getActivity().getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); 

    //getDialog().getWindow().setLayout(200, 200);

    Log.d("Dialog Create", "sdf3");
    return inflater.inflate(R.layout.dialog_fragment, null);

}
} 

dialog_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
android:layout_height="match_parent"
    android:minWidth="250dp"
    android:minHeight="250dp"
     >


</RelativeLayout>

最佳答案

这对我有用,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
android:layout_height="match_parent"
    android:minWidth="250dp"
    android:minHeight="250dp"
     >

我需要做的就是从 onCreateView() 中删除这段代码

private View getContentView() {
   View rowView = inflater.inflate(R.layout.dialog_fragment, null);   

    return rootView;
}

关于java - 自定义 DialogFragment 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17825060/

相关文章:

java - Hibernate 验证上的自定义错误消息

java - 如何将ListActivity转换为AppCompatActivity

android - 从 DialogFragment 打开 fragment (替换 Dialogs 父级)

android - 在Android中自动启动录音

android - 使用 DialogFragment 的对话框未正确显示

android - xamarin 中的空对话 fragment

java - 在 UML 类图中,如何显示一个类创建另一个类的对象但不存储对象引用?

java - 如何使用正则表达式从字符串中提取参数和值

java - ClientBundle 和图像 GWT 异常

android - TableRow 的点击效果与 ListView 的点击效果相同