Android 为什么我的后退按钮在关闭对话框片段后不起作用

Android 为什么我的后退按钮在关闭对话框片段后不起作用,android,back-button,android-dialogfragment,Android,Back Button,Android Dialogfragment,我创建了一个对话框片段,然后当我按下back键时,它被取消。不幸的是,当我再次按下“后退”按钮时,什么也没有发生(应该发生的是我应该离开此活动并转到上一个活动)。这怎么可能?当我关闭片段时(使用dismise()或back按钮),它不应该再捕获我按下的后退按钮(我不确定它是否捕获该事件) 有人能说出错误是什么吗 代码如下 FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); Fragment p

我创建了一个对话框片段,然后当我按下back键时,它被取消。不幸的是,当我再次按下“后退”按钮时,什么也没有发生(应该发生的是我应该离开此活动并转到上一个活动)。这怎么可能?当我关闭片段时(使用dismise()或back按钮),它不应该再捕获我按下的后退按钮(我不确定它是否捕获该事件)

有人能说出错误是什么吗

代码如下

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

    Fragment prev = getSupportFragmentManager().findFragmentByTag(
            "File Browser Fragmnent");
    if (prev != null) {
        ft.remove(prev);
    }
    ft.addToBackStack(null);
    FileBrowseDialog dialog = FileBrowseDialog.newInstance(currentVideoId);
    if (dialog.getDialog() != null)
        dialog.getDialog().setCanceledOnTouchOutside(true);
    dialog.setCancelable(true);

    if(darkenedOverlay != null && darkenedOverlay.getVisibility() != View.VISIBLE)
        darkenedOverlay.setVisibility(View.VISIBLE);
    ft.add(dialog, "File Browser Fragmnent");
    ft.show(dialog).commit();
然后,当我按下“后退”按钮时,对话框片段消失了(我不确定它是否只是隐藏了或是什么) 此外,这仅在使用ft.add()和ft.show().commit()时发生

如果我使用下面的代码而不是ft.add().show().commit(),它就可以正常工作

dialog.show(ft, "File Browser Fragment");

希望这里有人能帮忙,并提前表示感谢。

我找到了原因。这是因为我使用addToBackstack,它基本上撤消了最后一个事务(对话框的创建)。如果我删除addToBackstack,则“后退”按钮不再有问题。

我找到了发生这种情况的原因。这是因为我使用addToBackstack,它基本上撤消了最后一个事务(对话框的创建)。如果我删除addToBackstack,则“后退”按钮不再有问题