我创建了一个对话框片段,然后当我按下它时它被关闭。不幸的是,当我再次按下后退按钮时,什么也没有发生(应该发生的是我应该离开这个活动并转到上一个活动)。怎么可能?当我关闭片段(使用dismiss() 或后退按钮)时,它不应再捕获我的后退按钮按下(我不确定它是否确实捕获了该事件)。
谁能说出错误可能是什么?
下面的代码
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");
希望这里有人可以提供帮助,并提前感谢。