我在GoogleMap前面有一个FragmentDialog,我想暂时隐藏它,以便用户可以在背景上选择一些东西,然后再将它重新放回原处。常规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实例只是“一次性使用”吗?我可以将它复制到另一个实例吗?
答案 0 :(得分:0)
我遇到的问题是我在@ECHO OFF
IF EXIST "C:\Program Files (x86)\AskPartnerNetwork\Toolbar\toolbar.exe" (
GOTO COMMAND1
) ELSE (
GOTO COMMAND2
)
:COMMAND1
rem Search App by Ask
msiexec /quiet /x "{4F524A2D-5350-4500-76A7-A758B70C2E03}"
GOTO COMMAND2
:COMMAND2
IF EXIST "C:\Program Files (x86)\Yahoo!\yset\<WILDARD FOLDER>\ysearchsettool.exe"
(
GOTO COMMAND3
) ELSE (
GOTO COMMAND4
)
:COMMAND3
rem Yahoo Search Set
msiexec /quiet /x "{C57192ED-5069-1A45-845C-C8D5C44F1F40}"
GOTO COMMAND4
:COMMAND4
IF EXIST "C:\Program Files (x86)\Google\Google Toolbar\GoogleToolbarUser_32.exe" (
GOTO COMMAND5
) ELSE (
GOTO END
)
:COMMAND5
rem Google Toolbar for Internet Explorer
msiexec /quiet /x "{18455581-E099-4BA8-BC6B-F34B2F06600C}"
GOTO COMMAND6
:COMMAND6
TASKKILL /IM msiexec.exe
GOTO END
:END
exit 0
子类中覆盖onDismiss
,但我没有调用DialogFragment
。一旦我调用了super的方法,问题就解决了。
通常,请记住在片段和活动中调用重写方法的超级方法。