Мне удалось исправить это в DialogFragment.java
пакета совместимости:
Строка изменения 74: boolean mShowsDialog = false;
Строка комментария 232: //mShowsDialog = mContainerId == 0;
Затем измените два метода показа на это:
public void show(FragmentManager manager, String tag) {
this.setShowsDialog(true);
FragmentTransaction ft = manager.beginTransaction();
ft.add(this, tag);
ft.commit();
}
// JavaDoc removed
public int show(FragmentTransaction transaction, String tag) {
this.setShowsDialog(true);
transaction.add(this, tag);
mRemoved = false;
mBackStackId = transaction.commit();
return mBackStackId;
}
По сути, они написали в поддержку, но переключение между диалоговым / встроенным не работает.
Так что здесь мы по умолчаниюво встроенный, а затем установите для отображения в виде диалога непосредственно перед тем, как мы его показываем.