Post by account_disabled on Feb 1, 2024 7:13:55 GMT
推特 Facebook 领英 电子邮件 复制链接 注意:本文基于截至2020 年 6 月 1 日的 Material Components 版本1.2.0-beta01。 我在 Sprout Social 的一个小型 Android 团队工作了三年半,每天激励我上班的主要因素之一就是我们公司的自由和信任,让我能够以我们认为最好的方式解决问题。 我们可以自由地研究和探索针对我们认为必要的问题的多种不同解决方案,同时考虑交付产品更新的时间范围,这使我们能够为我们的客户和我们的软件找到最佳解决方案。 其中一项挑战涉及为我们新的移动报告功能构建 UI 组件。这个新组件是月份选择器,它允许我们的用户确定分析报告的日期范围。 我们选择的起始位置是现有的材质组件库。该库不是从头开始,而是积极维护并符合材料规范。以此库为基础,我们可能会减少必须自己编写的逻辑量。 在这篇文章中,我将介绍我们如何完成这个过程、构建 Sprout Android 应用程序的一些独特因素、在此过程中出现(并已修复)的一些“陷阱”,以及如果您是正在从事类似的项目。
版本引入了新的日期选择器 UI 组件。MaterialDatePicker与 AppCompat 相比,这一新功能的一个受欢迎 WhatsApp 数据 的新增功能CalendarView 是能够使用日历视图或文本输入字段选择日期范围。 旧的 AppCompat CalendarView 不太灵活。对于它要解决的有限用例来说,这是一个很好的组件;也就是说,选择单个日期和可选的最小和最大日期来指定允许的日期范围界限。 新的 MaterialDatePicker 具有更大的灵活性,允许使用扩展的行为功能。它通过一系列接口工作,人们可以实现这些接口来调整和修改选择器的行为。 这种行为修改是在运行时通过类上的一组构建器模式函数完成的MaterialDatePicker.Builder 。 这意味着我们能够MaterialDatePicker通过可组合的接口组件来扩展它的基本行为。 注意:虽然使用了许多不同的组件MaterialDatePicker ,但在本文中我们将仅介绍日期选择组件。 日期范围选择器 Sprout Social Android 团队正在构建我们的分析报告部分。 这个新部分将允许我们的用户选择报告将涵盖的一组过滤器和一组日期范围。 它MaterialDatePicker 附带了一些预构建的组件,我们可以利用它们来完成我们的用例。
对于我们最常见的情况,允许用户选择日期范围,预先构建的MaterialDatePicker就足够了: 通过此代码块,我们获得了一个日期选择器,允许用户选择日期范围。 每月日期选择器 Twitter 趋势报告是具有更独特日期选择的 Sprout Social 报告之一。 此报告与其他报告的不同之处在于,它不允许任何类型的日期范围,而是强制选择单月,这意味着用户只能选择 2020 年 3 月与 2020 年 3 月 3 日至 3 月 16 日。 我们的网络应用程序通过使用下拉表单字段来处理此问题: 无法MaterialDatePicker使用上一节中讨论的预构建材料日期范围选择器来强制执行此类限制。幸运的是,MaterialDatePicker 是使用可组合部件构建的,使我们能够扩展特定用例的默认行为。 日期选择行为 利用M于选择器选择逻辑的接口。 来自 Javadoc: “用户{@link MaterialCalendar<S>}控制日历如何显示和返回选择的界面......” 您会注意到返回一个 的构建器实例RangeDateSelector,我们在上面的示例中使用了该实例。
版本引入了新的日期选择器 UI 组件。MaterialDatePicker与 AppCompat 相比,这一新功能的一个受欢迎 WhatsApp 数据 的新增功能CalendarView 是能够使用日历视图或文本输入字段选择日期范围。 旧的 AppCompat CalendarView 不太灵活。对于它要解决的有限用例来说,这是一个很好的组件;也就是说,选择单个日期和可选的最小和最大日期来指定允许的日期范围界限。 新的 MaterialDatePicker 具有更大的灵活性,允许使用扩展的行为功能。它通过一系列接口工作,人们可以实现这些接口来调整和修改选择器的行为。 这种行为修改是在运行时通过类上的一组构建器模式函数完成的MaterialDatePicker.Builder 。 这意味着我们能够MaterialDatePicker通过可组合的接口组件来扩展它的基本行为。 注意:虽然使用了许多不同的组件MaterialDatePicker ,但在本文中我们将仅介绍日期选择组件。 日期范围选择器 Sprout Social Android 团队正在构建我们的分析报告部分。 这个新部分将允许我们的用户选择报告将涵盖的一组过滤器和一组日期范围。 它MaterialDatePicker 附带了一些预构建的组件,我们可以利用它们来完成我们的用例。
对于我们最常见的情况,允许用户选择日期范围,预先构建的MaterialDatePicker就足够了: 通过此代码块,我们获得了一个日期选择器,允许用户选择日期范围。 每月日期选择器 Twitter 趋势报告是具有更独特日期选择的 Sprout Social 报告之一。 此报告与其他报告的不同之处在于,它不允许任何类型的日期范围,而是强制选择单月,这意味着用户只能选择 2020 年 3 月与 2020 年 3 月 3 日至 3 月 16 日。 我们的网络应用程序通过使用下拉表单字段来处理此问题: 无法MaterialDatePicker使用上一节中讨论的预构建材料日期范围选择器来强制执行此类限制。幸运的是,MaterialDatePicker 是使用可组合部件构建的,使我们能够扩展特定用例的默认行为。 日期选择行为 利用M于选择器选择逻辑的接口。 来自 Javadoc: “用户{@link MaterialCalendar<S>}控制日历如何显示和返回选择的界面......” 您会注意到返回一个 的构建器实例RangeDateSelector,我们在上面的示例中使用了该实例。