我正在尝试使用 DialogFragment.getDialog()
获取使用扩展 DialogFragment
创建的 Dialog
,但它返回 null。
基本上我想从创建并显示 DialogFragment
的 FragmentActivity
更改布局中的文本。
最佳答案
您在 DialogFragment
的生命周期中过早地调用 getDialog()
。
getDialog()
只是从 DialogFragment
中返回私有(private)变量 mDialog
。
当 DialogFragment
被实例化时 mDialog
为空,然后在 getLayoutInflater(Bundle savedInstanceState 中触发
,所以你必须在onCreateDialog
时设置它)onCreateDialog
之后调用getDialog
。
例如,一些常用方法调用的顺序是onCreate
、onCreateDialog
、onCreateView
、onStart
.因此,您可以调用 getDialog
并让它在 onCreateView
或 onStart
中返回某些内容,而不是在 onCreate
或 onCreateDialog
.
即使 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/