android - 使用 onCreateDialog 创建时,DialogFragment 不可见

标签 android android-fragments android-3.0-honeycomb

(使用兼容性库)

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

在我的 fragment 中,我通过以下方式调用对话框:

dlg.show(getFragmentManager(), tag);

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

dlg.isVisible();

这会返回 false。

现在以下是来自兼容性源的 Fragment::isVisible 代码。

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

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

关于我应该如何调用该对话框或为此创建它以使其附加到 fragment 的 Root View 的任何想法?或者我还应该如何检查可见性?

提前致谢,彼得。

最佳答案

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

boolean isShowing(DialogFragment dlg)
{
   return dlg.getDialog() != null;
}

关于android - 使用 onCreateDialog 创建时,DialogFragment 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5994611/

相关文章:

android - 查明设备是否经过全盘加密以及使用了什么加密方式?

android - 如何在 Google 的新 NavigationView 中将 MenuItem 添加到 SubMenu?

java - 从外部方法为字段 ("global variable") 赋值

android - repo 同步失败 (73/221

android - fragment 已添加 IllegalStateException

android - 一个 galaxy 选项卡上只有一个应用程序?

java - 我的 Android 应用程序多次检测到同一个蓝牙设备

java - 使用参数将数据从 Activity 发送到 Fragment (Kotlin/Android)

android - 可以在多个 Activity 中重复使用 Fragment 实例吗?

java - inflater.inflate() 方法调用时出现 InflateException