【发布时间】:2013-02-19 00:34:56
【问题描述】:
我创建了一个对话框片段,然后当我按下它时它被关闭。不幸的是,当我再次按下后退按钮时,什么也没有发生(应该发生的是我应该离开这个活动并转到上一个活动)。这个怎么可能?当我关闭片段(使用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");
希望这里有人可以提供帮助,并在此先感谢。
【问题讨论】:
标签: android back-button android-dialogfragment