如何在不从FragmentManager中删除DialogFragment的情况下解除它

时间:2016-05-22 18:04:02

标签: android android-fragments android-dialogfragment

我想隐藏一个DialogFragment,但也会保留所有视图和字段的状态。

我尝试使用:

getSupportFragmentManager()
    .beginTransaction()
    .setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
    .hide(dialogFragment)
    .commit();

但它的效果不是很好,因为它会隐藏DialogFragment,但不会隐藏Dialog后面的黑色透明覆盖,我认为它是一个Dialog Window属性。
但是后来没有办法使用相同的方法显示DialogFragment,因为当我尝试这个时:

getSupportFragmentManager()
    .beginTransaction()
    .setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
    .show(dialogFragment)
    .commit();

它没有效果。 DialogFragment不会显示。
有没有其他方法或我应该操纵Dialog的视图?

1 个答案:

答案 0 :(得分:1)

使用以下隐藏对话框:

dialogFragment.getDialog().hide();

使用以下内容重新显示对话框:

dialogFragment.getDialog().show();

我建议您在致电dialogFragment.getDialog()show()

时先判断hide()是否为空