【问题标题】:DialogFragment won't open after 30 times - androidDialogFragment 30 次后不会打开 - android
【发布时间】:2017-02-07 08:43:26
【问题描述】:

我在对话片段中遇到了问题。打开dialogfragment 30次后,下一个模糊屏幕但没有内容。有解决办法吗??

这里是父片段:

DialogFragment newFragment = new B3Fragment();
newFragment.show(getFragmentManager(), "");

这是我的 onCreateDialog:

public Dialog onCreateDialog(Bundle savedInstanceState) {
    View view = getActivity().getLayoutInflater().inflate(R.layout.fragment_b3, new LinearLayout(getActivity()), false);

    // Build dialog
    Dialog builder = new Dialog(getActivity());
    builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
    builder.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    builder.setContentView(view);
    return builder;
}

谢谢。

【问题讨论】:

    标签: fragment dialogfragment


    【解决方案1】:

    你不是在创建对话框,你必须在返回之前创建对话框。

    public Dialog onCreateDialog(Bundle savedInstanceState) {
        View view = getActivity().getLayoutInflater().inflate(R.layout.fragment_b3, new LinearLayout(getActivity()), false);
    
        // Build dialog
        Dialog.Builder builder = new Dialog.Builder(getActivity());
        builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
        builder.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        builder.setContentView(view);
        return builder.create();
    }
    

    【讨论】:

    • 谢谢,我提到我们应该使用 Alertdialog 而不是 Dialog。注意 Dilaog 没有构建器。
    【解决方案2】:

    也许您应该使用Dialog.Builder.create() 而不是new Dialog()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-21
      • 2013-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多