时间选择器 (Time Pickers)
时间选择器帮助用户选择并设置特定的时间。M3 提供了两种主要变体。

- Time picker dial (表盘模式): 通过转动手柄来选择。
- Time picker input (输入模式): 通过键盘输入数字。
代码实现
推荐使用 MaterialTimePicker.Builder 来创建对话框。
kotlin
val picker = MaterialTimePicker.Builder()
.setTimeFormat(TimeFormat.CLOCK_24H)
.setHour(12)
.setMinute(30)
.setTitleText("选择签到时间")
.build()
picker.show(supportFragmentManager, "TIME_PICKER")kotlin
picker.addOnPositiveButtonClickListener {
// 获取小时和分钟
val hour = picker.hour
val minute = picker.minute
Log.d("Time", "Selected: $hour:$minute")
}模式切换
默认情况下,表盘模式包含一个键盘图标,允许用户随时切换到输入模式。
- 强制时钟模式:
.setInputMode(MaterialTimePicker.INPUT_MODE_CLOCK) - 强制键盘模式:
.setInputMode(MaterialTimePicker.INPUT_MODE_KEYBOARD)
主题化
你可以通过修改 materialTimePickerTheme 来自定义表盘颜色。
xml
<style name="Theme.App" parent="Theme.Material3.*">
<item name="materialTimePickerTheme">@style/ThemeOverlay.App.TimePicker</item>
</style>
<style name="ThemeOverlay.App.TimePicker" parent="ThemeOverlay.Material3.MaterialTimePicker">
<!-- 自定义时钟背景颜色 -->
<item name="clockFaceBackgroundColor">@color/my_clock_bg</item>
<item name="colorPrimary">@color/my_hand_color</item>
</style>