4

(使用兼容性库)

我已经实现了一个带有扩展 DialogFragment 的对话框。我在 onCreateDialog 中使用 AlertDialog.Builder 创建对话框(不使用 onCreateView)。

在我的片段中,我调用对话框:

dlg.show(getFragmentManager(), tag);

但是,当我来检查可见性时,一旦对话框清晰可见,使用

dlg.isVisible();

这返回错误。

下面是来自兼容性源的 Fragment::isVisible 代码。

final public boolean isVisible() {
    return isAdded() && !isHidden() && mView != null
            && mView.getWindowToken() != null && mView.getVisibility() == View.VISIBLE;
}

调用返回 false 因为 mView 为空,因为视图未附加到窗口。

关于我应该如何调用对话框或为此创建它的任何想法,以便它附加到片段的根视图?或者我应该如何检查可见性?

在此先感谢,彼得。

4

1 回答 1

4

您可以通过以下函数确定对话框片段是否正在显示:

boolean isShowing(DialogFragment dlg)
{
   return dlg.getDialog() != null;
}
于 2011-11-04T22:33:29.957 回答