关于全屏。
范围选择器应覆盖整个屏幕(默认为单日期对话框,时间范围选择器为全屏)。
但是您可以在样式中更改此行为。
您可以使用setTheme
方法应用主题覆盖:
//To apply a dialog
builder.setTheme(R.style.ThemeOverlay_MaterialComponents_MaterialCalendar)
//To apply the fullscreen:
builder.setTheme(R.style.ThemeOverlay_MaterialComponents_MaterialCalendar_Fullscreen)
注意: 它需要至少版本 1.2.0-alpha01
。
作为替代方案,您可以在应用程序主题中添加 materialCalendarFullscreenTheme
属性。
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<item name="materialCalendarFullscreenTheme">@style/CustomThemeOverlay_MaterialCalendar_Fullscreen</item>
</style>
其中:
<style name="CustomThemeOverlay_MaterialCalendar_Fullscreen"
parent="@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen">
<item name="materialCalendarStyle">@style/Custom_MaterialCalendar.Fullscreen</item>
</style>
您可以使用android:windowFullscreen
属性覆盖该值:
<style name="Custom_MaterialCalendar.Fullscreen"
parent="@style/Widget.MaterialComponents.MaterialCalendar.Fullscreen">
<item name="android:windowFullscreen">false</item>
</style>
![这里输入图片描述](https://istack.dev59.com/ioUBM.webp)
关于字符串
目前没有更改字符串的方法。
唯一现有的方法是使用 builder.setTitleText
更改标题。
但是,您可以在项目中覆盖所有现有的字符串,但此解决方法可能无法在以后的版本中运行。例如:
<string name="mtrl_picker_save" description="Confirms the selection [CHAR_LIMIT=12]">....</string>
<string name="mtrl_picker_text_input_date_range_start_hint" description="Label for the start date in a range selected by the user [CHAR_LIMIT=60]">...</string>
<string name="mtrl_picker_text_input_date_range_end_hint" description="Label for the end date in a range selected by the user [CHAR_LIMIT=60]">...</string>
![图片描述输入在此处](https://istack.dev59.com/qcGPk.webp)
您可以在1.2.0-alpha02
中使用的材料日历中找到所有字符串。