【问题标题】:Can I show() a FragmentDialog after dismiss()?我可以在dismiss() 后显示() 一个片段对话框吗?
【发布时间】:2014-01-16 05:34:31
【问题描述】:

我有一个 FragmentDialog 出现在我想暂时隐藏的 GoogleMap 前面,以便用户可以在背景上选择某些内容,然后再次将其带回前面。常规 hide()/show() 不起作用,因为它不是“嵌入”片段,但无法隐藏 FragmentDialog。我尝试使用dismiss(),然后使用相同的实例使用show(),因为这应该重新创建对话框,但由于某种原因它似乎不起作用。这是我的代码:

 if (onHoldDialog != null) {
        onHoldDialog.setPointText(mapMarker.getTitle());

        FragmentTransaction ft = getFragmentManager().beginTransaction();
        Fragment prev = getFragmentManager().findFragmentByTag("dialog");
        if (prev != null) {
            ft.remove(prev);
        }
        ft.addToBackStack(null);

        onHoldDialog.show(ft, "dialog");
}

我的方法错了吗? FragmentDialog 实例是否只是“一次性”的?我可以将其复制到另一个实例吗?

【问题讨论】:

  • 我知道这是一篇很老的帖子,但是在执行了dismiss() 然后是 show() 之后我也遇到了问题。我的问题是 UI 是从原始对话框中保留的。不知道为什么,只有一个实例,我可以看到我正在设置对新图像数据显示为可见的视图。

标签: android android-fragments android-dialogfragment


【解决方案1】:

我遇到的问题是我在我的DialogFragment 子类中覆盖了onDismiss,但我没有调用super.onDismiss。一旦我调用了super的方法,问题就解决了。

一般来说,记得在片段和活动中调用被覆盖方法的超级方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多