RadioSheetBuilder

class RadioSheetBuilder<T>(title: String = "请选择", items: Set<T>, itemText: (T) -> String = { it.toString() }, selectedItem: T = items.first(), showButton: Boolean = true, cancelText: String = "取消", confirmText: String = "确定", onCancelClick: suspend CoroutineScope.() -> Boolean = { true }, onConfirmClick: suspend CoroutineScope.(T) -> Boolean = { true }) : SheetBuilder

单选面板底部弹窗构建器

从底部弹出的单选列表面板,展示一组带单选按钮的选项列表。 支持两种交互模式:

  • 带按钮模式(showButton = true):顶部显示标题栏(取消/确定按钮), 用户选择后需点击确定才会触发回调

  • 无按钮模式(showButton = false):仅显示标题, 点击选项即刻触发 onConfirmClick 回调并关闭弹窗

选项列表超出可视区域时支持垂直滚动。

Author

d10ng

Parameters

title

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

items

选项数据集合,要求非空

itemText

选项文本转换函数,默认调用 toString()

selectedItem

当前选中的项,默认为第一项

showButton

是否显示确定和取消按钮,默认 true

cancelText

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

confirmText

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

onCancelClick

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

onConfirmClick

确定按钮点击回调,参数为选中的项,返回 true 则自动关闭弹窗

Type Parameters

T

选项数据类型

Constructors

Link copied to clipboard
constructor(title: String = "请选择", items: Set<T>, itemText: (T) -> String = { it.toString() }, selectedItem: T = items.first(), showButton: Boolean = true, cancelText: String = "取消", confirmText: String = "确定", onCancelClick: suspend CoroutineScope.() -> Boolean = { true }, onConfirmClick: suspend CoroutineScope.(T) -> 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 })

弹窗标题栏