android - DialogFragment.getDialog 返回 null

标签 android

我正在尝试使用 DialogFragment.getDialog() 获取使用扩展 DialogFragment 创建的 Dialog,但它返回 null。

基本上我想从创建并显示 DialogFragmentFragmentActivity 更改布局中的文本。

最佳答案

您在 DialogFragment 的生命周期中过早地调用 getDialog()

getDialog() 只是从 DialogFragment 中返回私有(private)变量 mDialog

DialogFragment 被实例化时 mDialog 为空,然后在 getLayoutInflater(Bundle savedInstanceState 中触发 onCreateDialog 时设置它),所以你必须在onCreateDialog之后调用getDialog

例如,一些常用方法调用的顺序是onCreateonCreateDialogonCreateViewonStart .因此,您可以调用 getDialog 并让它在 onCreateViewonStart 中返回某些内容,而不是在 onCreateonCreateDialog.

即使 onStart 被称为 called when the Fragment is visible to the user ,此时调整 fragment 的布局看起来很好......例如使用 getDialog().getWindow().setLayout(..., ...); 设置宽度和高度不会使 fragment 看起来改变大小,而只是看起来具有新设置的大小。

关于android - DialogFragment.getDialog 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8456143/

相关文章:

android - JavaDoc 不适用于 Android 项目

android - Intellij IDEA 中资源文件的快速切换

java - 在android studio中解析json

android - 在android中获取节点的各个值

Android - 更新多人游戏中所有客户端的用户界面?

java - 从 Activity 中的 Fragment 单击返回会显示空 Activity

android - ADB命令打开所有应用程序菜单

android - Android fragment 中的手电筒 - SurfaceView

android - 在android中获取位图null

android - Android Manifest 中的 versionCode 与 versionName