想要在 onClick 中启动 TimerView() - TimerView 是一个文本可组合项 但出现上述错误 - 两者都被标记为可组合项
Composable
fun LosB(BLY: String, YArray: ArrayList<String> /* = java.util.ArrayList<kotlin.String> */) {
// val Tit = mutableStateOf("sdfsdf")
val context = LocalContext.current
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxWidth()
) {
OutlinedButton(
onClick = { TimerView()},
shape = CircleShape,
border = BorderStroke(1.dp, Color(0xFFADFF2F)),
colors = ButtonDefaults.buttonColors(
backgroundColor = Color(0xFF1C536F),
contentColor = Color.White
)
) {
Text(text = "OK", fontSize = 20.sp)
}
}
有什么帮助吗?想要显示 txt 计数器 -
你只需要像这样创建一个 mutableState
var timeViewState by remember {
mutableStateOf(false)
}
if(timeViewState) {
TimerView()
}
OutlinedButton(
onClick = { timeViewState = true },
...
首页我帮你
@Compose
注释的作用类似于 Kotlin 中的 suspend 关键字,它正在改变函数的类型。可组合函数类型就像 suspend
与常规函数类型不兼容一样。
编译器以不同的方式对待该类型的函数,它向其插入
$composer
参数,并使用生成的整数键调用其 start
方法。
fun TimerView($composer: Composer) {
$composer.start(123)
}
此
composer
对象从父可组合项传递给可组合项,但由于 onClick
不可组合并且发生在组合上下文之外,因此其中没有有效的作曲家。所以如果没有 composer
就无法调用可组合项
作曲,作曲,作曲……
关于它的好文章是这里