title: Android: support DialogFragment with custom layout not shown
body: <p>I've had a subclass of <code>DialogFragment</code> (<code>android.support.v4.app.DialogFragment</code>) in my app that worked fine for a long time. The dialog itself was constructed in <code>onCreateDialog()</code> callback.</p>
  
  <p>Now, however, I want to transition to a new dialogs layout and decided to construct a completely customized dialog. To my best knowledge, this requires removing override of <code>onCreateDialog()</code> and inflating a <code>View</code> hierarchy in <code>onCreateView()</code> callback. I did so.</p>
  
  <p>The resulting behavior is very strange - when the dialog needs to be shown, the screen dims, but the layout of the dialog is not shown (the behavior of "back" button is also consistent with dialog's functionality):</p>
  
  <p><a href="https://i.stack.imgur.com/NlZNhm.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/NlZNhm.jpg" alt="enter image description here"></a></p>
  
  <p>I tried to revert back to the old implementation (which uses <code>onCreateDialog()</code> callback) - it still works. </p>
  
  <p>My question is: what am I doing wrong?</p>
  
  <p>Dialog's code:</p>
  
  <pre><code>/**
   * A dialog that can show title and message and has two buttons. User's actions performed
   * in this dialog will be posted to {@link EventBus} as {@link PromptDialogDismissedEvent}.
   */
  public class PromptDialog extends BaseDialog {
  
  
      /* package */ static final String ARG_TITLE = "ARG_TITLE";
      /* package */ static final String ARG_MESSAGE = "ARG_MESSAGE";
      /* package */ static final String ARG_POSITIVE_BUTTON_CAPTION = "ARG_POSITIVE_BUTTON_CAPTION";
      /* package */ static final String ARG_NEGATIVE_BUTTON_CAPTION = "ARG_NEGATIVE_BUTTON_CAPTION";
  
      @Inject EventBus mEventBus;
  
      private TextView mTxtTitle;
      private TextView mTxtMessage;
      private Button mBtnPositive;
      private Button mBtnNegative;
  
      @Override
      public void onAttach(Activity activity) {
          super.onAttach(activity);
          getControllerComponent().inject(this);
      }
  
      // THIS CODE MAKES THE SCREEN DIM, BUT THE ACTUAL LAYOUT IS NOT SHOWN
  
      @Nullable
      @Override
      public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  
          View rootView = inflater.inflate(R.layout.dialog_info_prompt, container, false);
  
          initSubViews(rootView);
  
          populateSubViews();
  
          return rootView;
  
      }
  
      private void initSubViews(View rootView) {
          mTxtTitle = (TextView) rootView.findViewById(R.id.txt_dialog_title);
          mTxtMessage = (TextView) rootView.findViewById(R.id.txt_dialog_message);
          mBtnPositive = (Button) rootView.findViewById(R.id.btn_dialog_positive);
          mBtnNegative = (Button) rootView.findViewById(R.id.btn_dialog_negative);
  
          mBtnPositive.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  mEventBus.post(new PromptDialogDismissedEvent(getDialogTag(), PromptDialogDismissedEvent.BUTTON_POSITIVE));
              }
          });
  
          mBtnNegative.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  mEventBus.post(new PromptDialogDismissedEvent(getDialogTag(), PromptDialogDismissedEvent.BUTTON_NEGATIVE));
              }
          });
      }
  
      private void populateSubViews() {
          String title = getArguments().getString(ARG_TITLE);
          String message = getArguments().getString(ARG_MESSAGE);
          String positiveButtonCaption = getArguments().getString(ARG_POSITIVE_BUTTON_CAPTION);
          String negativeButtonCaption = getArguments().getString(ARG_NEGATIVE_BUTTON_CAPTION);
  
          mTxtTitle.setText(TextUtils.isEmpty(title) ? "" : title);
          mTxtMessage.setText(TextUtils.isEmpty(message) ? "" : message);
          mBtnPositive.setText(positiveButtonCaption);
          mBtnNegative.setText(negativeButtonCaption);
      }
  
  
      // THE BELOW CODE WORKS FINE (the dialog is shown and responsive)
  
  //    @Override
  //    public @NonNull Dialog onCreateDialog(Bundle savedInstanceState) {
  //        String title = getArguments().getString(ARG_TITLE);
  //        String message = getArguments().getString(ARG_MESSAGE);
  //        String positiveButtonCaption = getArguments().getString(ARG_POSITIVE_BUTTON_CAPTION);
  //        String negativeButtonCaption = getArguments().getString(ARG_NEGATIVE_BUTTON_CAPTION);
  //
  //        Dialog dialog = new AlertDialog.Builder(getActivity())
  //                .setTitle(TextUtils.isEmpty(title) ? "" : title)
  //                .setMessage(TextUtils.isEmpty(message) ? "" : message)
  //                .setPositiveButton(TextUtils.isEmpty(positiveButtonCaption) ? "" : positiveButtonCaption,
  //                        new DialogInterface.OnClickListener() {
  //                            @Override
  //                            public void onClick(DialogInterface dialog, int which) {
  //                                mEventBus.post(new PromptDialogDismissedEvent(getDialogTag(), PromptDialogDismissedEvent.BUTTON_POSITIVE));
  //                            }
  //                        })
  //                .setNegativeButton(TextUtils.isEmpty(negativeButtonCaption) ? "" : negativeButtonCaption,
  //                        new DialogInterface.OnClickListener() {
  //                            @Override
  //                            public void onClick(DialogInterface dialog, int which) {
  //                                mEventBus.post(new PromptDialogDismissedEvent(getDialogTag(), PromptDialogDismissedEvent.BUTTON_NEGATIVE));
  //                            }
  //                        })
  //                .create();
  //
  //        return dialog;
  //    }
  
  }
  </code></pre>
  
  <p>Custom dialog's layout:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent"&gt;
  
      &lt;TextView
          android:id="@+id/txt_dialog_title"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginTop="15dp"
          android:layout_gravity="center_horizontal"
          style="@style/AppTheme.TextView.DialogTitle"
          tools:text="Dialog title"/&gt;
  
      &lt;View
          android:layout_width="match_parent"
          android:layout_height="1dp"
          android:layout_marginTop="10dp"
          android:background="@color/gray"/&gt;
  
      &lt;RelativeLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:padding="@dimen/fragment_default_padding"&gt;
  
          &lt;TextView
              android:id="@+id/txt_dialog_message"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_marginTop="10dp"
              style="@style/AppTheme.TextView.DialogMessage"
              tools:text="Dialog message very very very very very very very very very very very very long"/&gt;
  
          &lt;Button
              android:id="@+id/btn_dialog_positive"
              android:layout_width="wrap_content"
              android:layout_height="@dimen/button_height"
              android:layout_marginTop="15dp"
              android:layout_below="@id/txt_dialog_message"
              android:layout_alignParentEnd="true"
              android:layout_alignParentRight="true"
              style="@style/AppTheme.GreenButton"
              tools:text="Positive"/&gt;
  
          &lt;Button
              android:id="@+id/btn_dialog_negative"
              android:layout_width="wrap_content"
              android:layout_height="@dimen/button_height"
              android:layout_marginTop="15dp"
              android:layout_below="@id/txt_dialog_message"
              android:layout_toStartOf="@+id/btn_dialog_positive"
              android:layout_toLeftOf="@id/btn_dialog_positive"
              android:layout_marginEnd="15dp"
              android:layout_marginRight="15dp"
              style="@style/AppTheme.GrayButton"
              tools:text="Negative"/&gt;
  
      &lt;/RelativeLayout&gt;
  
  &lt;/LinearLayout&gt;
  </code></pre>