唯客微博客

专注于计算机,嵌入式领域的技术

0%

Modifier 开关(Toggleable)

Modifier 开关(Toggleable)

toggleable 修饰符非常适合用来做开关效果

triStateToggleable 修饰符为三态开关(启用、停用和不确定)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
fun Modifier.toggleable(
value: Boolean,
enabled: Boolean,
role: Role?,
onValueChange: (Boolean) -> Unit
)

fun Modifier.toggleable(
value: Boolean,
interactionSource: MutableInteractionSource,
indication: Indication?,
enabled: Boolean,
role: Role?,
onValueChange: (Boolean) -> Unit
)

fun Modifier.triStateToggleable(
state: ToggleableState,
enabled: Boolean,
role: Role?,
onClick: () -> Unit
)

fun Modifier.triStateToggleable(
state: ToggleableState,
interactionSource: MutableInteractionSource,
indication: Indication?,
enabled: Boolean,
role: Role?,
onClick: () -> Unit
)
  • value: Toggleable 是打开还是关闭
  • enabled: 启用Toggleable
  • interactionSource: 按下时发出此状态
  • indication: 按下修改后的元素时显示的指示。默认情况下,LocalIndication将使用指示。传递null以显示无指示,
  • role: 用户界面元素的类型。
  • onValueChange: 单击 toggleable 时调用的回调
  • onClick: 在用户单击可切换时调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@Composable
fun ToggleableDemo() {
var checked by remember { mutableStateOf(false) }
// content that you want to make toggleable
Text(
modifier = Modifier.toggleable(value = checked, onValueChange = { checked = it }),
text = checked.toString()
)
}

@Composable
fun TriStateToggleableDemo() {
var checked by remember { mutableStateOf(ToggleableState.Indeterminate) }
// content that you want to make toggleable
Text(
modifier = Modifier.triStateToggleable(
state = checked,
onClick = {
checked =
if (checked == ToggleableState.On)
ToggleableState.Off
else
ToggleableState.On
}
),
text = checked.toString()
)
}
-------------本文结束感谢您的阅读-------------

本文标题:Modifier 开关(Toggleable)

文章作者:Vinx

发布时间:2022年12月30日 - 12:12

最后更新:2023年09月18日 - 11:37

原始链接:https://blog.vinkvin.com/post/46/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。