DatePickerSheetBuilder

class DatePickerSheetBuilder(title: String = "请选择", value: Long, start: Long = 0, endInclude: Long = kotlin.time.Clock.System.now().toEpochMilliseconds(), textStyle: TextStyle = AppText.Normal.Title.default, mode: DatePickerMode = DatePickerMode.YMD, itemText: (Int, String) -> String = { _, item -> item }, cancelText: String = "取消", confirmText: String = "确定", onCancelClick: suspend CoroutineScope.() -> Boolean = { true }, onConfirmClick: suspend CoroutineScope.(Long) -> Boolean = { true }) : SheetBuilder

日期选择器底部弹窗构建器

从底部弹出的日期选择面板,包含标题栏(取消/确定按钮)和日期滚轮选择器。 支持年月日多种选择模式,可配置日期范围。 确认后通过 onConfirmClick 回调返回选中的日期时间戳(毫秒)。

Author

d10ng

Parameters

title

标题文字,默认 "请选择"

value

当前选中的日期时间戳(毫秒),必填

start

可选日期范围的起始时间戳(毫秒),默认 0

endInclude

可选日期范围的结束时间戳(毫秒,包含),默认当前系统时间

textStyle

选项文字样式,默认 AppText.Normal.Title.default

mode

选择器模式,默认 DatePickerMode.YMD

itemText

选项文字自定义函数,第一个参数为列索引,第二个为默认文字

cancelText

取消按钮文字,默认 "取消"

confirmText

确定按钮文字,默认 "确定"

onCancelClick

取消按钮点击回调,返回 true 则自动关闭弹窗

onConfirmClick

确定按钮点击回调,参数为选中的日期时间戳(毫秒),返回 true 则自动关闭弹窗

Constructors

Link copied to clipboard
constructor(title: String = "请选择", value: Long, start: Long = 0, endInclude: Long = kotlin.time.Clock.System.now().toEpochMilliseconds(), textStyle: TextStyle = AppText.Normal.Title.default, mode: DatePickerMode = DatePickerMode.YMD, itemText: (Int, String) -> String = { _, item -> item }, cancelText: String = "取消", confirmText: String = "确定", onCancelClick: suspend CoroutineScope.() -> Boolean = { true }, onConfirmClick: suspend CoroutineScope.(Long) -> Boolean = { true })

Properties

Link copied to clipboard
Link copied to clipboard
var topMargin: @Composable () -> Dp
Link copied to clipboard
val visibleFlow: MutableStateFlow<Boolean>

Functions

Link copied to clipboard
open override fun Build()

构建弹窗内容

Link copied to clipboard
fun dismiss()

隐藏弹窗

Link copied to clipboard
fun SheetBuilder.TitleBar(title: String = "请选择", cancelText: String = "取消", confirmText: String = "确定", onCancelClick: suspend CoroutineScope.() -> Boolean = { true }, onConfirmClick: suspend CoroutineScope.() -> Boolean = { true })

弹窗标题栏