是否可以切换日期选择器 header 的格式?
Is it possible to switch the format of date picker header?
我正在尝试将 material 设计日期选择器上的 header 更改为与默认格式不同的 select 日期。当前默认值为 Month , year :例如:2021 年 6 月 22 日,但我希望它是 6 月 22 日星期一。它作为第一个设计显示在 material 设计文档中,但没有说明如何进行改变这种格式?
有任何想法吗?
material 设计:https://material.io/components/date-pickers
我想要实现的是:
很遗憾,您不能 更改 MaterialDatePicker
的 Date Format
和 Local
。
由于 MaterialDatePicker
非常严格,因此与许多其他 Material Design Components
一样,我建议您使用备用日期选择器库,例如 MaterialDateTimePicker。
基本满足你的所有需求:
- 更改日期格式:
setLocale(Locale locale)
✅
- 从多个日期 UI 中选择 ✅
- 非常灵活且易于定制以满足您的需求 ✅
PS:还有一种更流行的选择:android-betterpickers
如果您有任何其他问题,请告诉我。
在查看源代码并尝试了一些东西之后,我确实找到了解决方案。不幸的是,实现起来并不那么简单,我想切换到 MaterialDateTimePicker
仍然是最好的解决方案。
header 的日期到文本的转换由 DateSelector
通过 getSelectionDisplayString(Context context)
完成。请参阅 MaterialDatePicker
here 内的 getHeaderText()
。
遗憾的是,MaterialDatePicker
是最终的,因此您不能简单地创建自己的方法并覆盖此方法。但是,对于给定的构建器,您可以使用 MaterialDatePicker.Builder.customDatePicker(DateSelector selector)
来放置您自己的 DateSelector (source).
Material 使用他们的 SingleDateSelector
(source) 进行简单的日期选择。但同样,不可能在此选择器的基础上构建并编写自定义 getSelectionDisplayString
方法,因为 class 受到限制。知道这一点,就需要编写自己的 DateSelector
.
构建您自己的 DateSelector
本身就是一项更大的任务。可能可以从 SingleDateSelector
复制,但它使用了一些您也需要复制的私有 classes 和方法。
长话短说,我想这对于“简单地”更改日期格式来说太过分了。
我正在尝试将 material 设计日期选择器上的 header 更改为与默认格式不同的 select 日期。当前默认值为 Month , year :例如:2021 年 6 月 22 日,但我希望它是 6 月 22 日星期一。它作为第一个设计显示在 material 设计文档中,但没有说明如何进行改变这种格式?
有任何想法吗?
material 设计:https://material.io/components/date-pickers
我想要实现的是:
很遗憾,您不能 更改 MaterialDatePicker
的 Date Format
和 Local
。
由于 MaterialDatePicker
非常严格,因此与许多其他 Material Design Components
一样,我建议您使用备用日期选择器库,例如 MaterialDateTimePicker。
基本满足你的所有需求:
- 更改日期格式:
setLocale(Locale locale)
✅ - 从多个日期 UI 中选择 ✅
- 非常灵活且易于定制以满足您的需求 ✅
PS:还有一种更流行的选择:android-betterpickers
如果您有任何其他问题,请告诉我。
在查看源代码并尝试了一些东西之后,我确实找到了解决方案。不幸的是,实现起来并不那么简单,我想切换到 MaterialDateTimePicker
仍然是最好的解决方案。
header 的日期到文本的转换由 DateSelector
通过 getSelectionDisplayString(Context context)
完成。请参阅 MaterialDatePicker
here 内的 getHeaderText()
。
遗憾的是,MaterialDatePicker
是最终的,因此您不能简单地创建自己的方法并覆盖此方法。但是,对于给定的构建器,您可以使用 MaterialDatePicker.Builder.customDatePicker(DateSelector selector)
来放置您自己的 DateSelector (source).
Material 使用他们的 SingleDateSelector
(source) 进行简单的日期选择。但同样,不可能在此选择器的基础上构建并编写自定义 getSelectionDisplayString
方法,因为 class 受到限制。知道这一点,就需要编写自己的 DateSelector
.
构建您自己的 DateSelector
本身就是一项更大的任务。可能可以从 SingleDateSelector
复制,但它使用了一些您也需要复制的私有 classes 和方法。
长话短说,我想这对于“简单地”更改日期格式来说太过分了。