这个简单的类:
class DateSelectionDialogFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val calendar = Calendar.getInstance()
val year = calendar.get(Calendar.YEAR)
val month = calendar.get(Calendar.MONTH)
val dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH)
return DatePickerDialog(requireContext(), this, year, month, dayOfMonth)
}
}
导致按钮行为异常。重要的是我没有为对话框指定任何样式。这DialogFragment
来自androidx.fragment.app
包裹。
问题来自于Theme.MaterialComponents.Light.NoActionBar
.
它是相当新的(和阿尔法),它应该取代Theme.Design.Light.NoActionBar
但正如我们所看到的,它还不够好。
你的解决方案是只使用Theme.Design.Light.NoActionBar
.
但如果你really想要使用Theme.MaterialComponents.Light.NoActionBar
...问题是由主题中的此设置引起的:
<item name="viewInflaterClass">com.google.android.material.theme.MaterialComponentsViewInflater</item>
你可以用另一个替换它*ViewInflater
没有太多选择,但是:
<item name="viewInflaterClass">androidx.appcompat.app.AppCompatViewInflater</item>
它有效,但是我不会太依赖它,因为使用另一个包中的 Inflater 可能会导致奇怪的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)