【问题标题】:How to dismiss a DialogFragment without removing it from FragmentManager如何在不从 FragmentManager 中删除 DialogFragment 的情况下将其关闭
【发布时间】:2016-05-22 18:04:01
【问题描述】:

我想隐藏一个 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 不会显示。
有没有其他方法或者我应该操纵对话框的视图?

【问题讨论】:

    标签: android android-fragments android-dialogfragment


    【解决方案1】:

    使用下面隐藏您的对话框:

    dialogFragment.getDialog().hide();
    

    使用下方重新显示您的对话框:

    dialogFragment.getDialog().show();
    

    而且我建议你在调用show()hide()时先判断dialogFragment.getDialog()是否为null

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 2018-01-06
      相关资源
      最近更新 更多