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