这应该是一个简单的任务,但由于某种原因,我可以找到一种方法来设置DialogFragment的标题。(我正在使用onCreateView
重载设置对话框内容)。
默认样式为标题留了一个位置,但我在DialogFragment
类上找不到任何方法来设置它。
当使用onCreateDialog
方法设置内容时,不知何故,标题被神奇地设置了,所以我想知道这是设计好的,还是在使用onCreateView
重载时有一个特殊的技巧来设置它。
这应该是一个简单的任务,但由于某种原因,我可以找到一种方法来设置DialogFragment的标题。(我正在使用onCreateView
重载设置对话框内容)。
默认样式为标题留了一个位置,但我在DialogFragment
类上找不到任何方法来设置它。
当使用onCreateDialog
方法设置内容时,不知何故,标题被神奇地设置了,所以我想知道这是设计好的,还是在使用onCreateView
重载时有一个特殊的技巧来设置它。
7条答案
按热度按时间daupos2t1#
您可以使用
getDialog().setTitle("My Dialog Title")
就像这样:
xqnpmsa82#
重写
onCreateDialog
并直接在Dialog
上设置标题是否有效?如下所示:tnkciper3#
Jason's answer曾经为我工作,但现在它需要下面的附加内容才能让标题显示。
首先,在MyDialogFragment的
onCreate()
方法中,添加:setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialogFragmentStyle);
个然后,在styles.xml文件中添加:
经过几个小时的尝试不同的东西,这是唯一一个已经为我做的把戏。
NB -您可能需要将
Theme.AppCompat.Light.Dialog.Alert
更改为其他内容,以便与您的主题的风格相匹配。7cwmlq894#
DialogFragment可以表示为对话框和Activity请使用以下对这两种情况都能正常工作代码
zc0qhyus5#
你可以看一下official docs。我的做法是这样的:
w8biq8rn6#
类似于Ban Geoengineering's answer,但有一些修改,所以我在
styles.xml
中覆盖了DialogFragment
使用的默认样式,而不是编码在DialogFragment
中使用的特定主题。在
androidx.fragment.app.DialogFragment
中设置标题。在
styles.xml
中的应用主题中,覆盖android:dialogTheme
,这是DialogFragment
示例使用的默认样式。同样在
styles.xml
中,声明将由DialogFragment
示例使用的对话框主题。对于此样式来说,从ThemeOverlay
继承很重要,这样它将保留您的应用的主题颜色。请确保生成
DialogFragment
的活动正在使用已定义的AppTheme
。xa9qqrwz7#
如果使用视图绑定: