我创建了自己的类,名为MyInputRow。
@Composable
fun MyInputRow(
title: String,
modifier: Modifier = Modifier,
bgColor: Color,
icon: Painter,
clickAction: Unit
) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(6.dp)
.background(color = bgColor)
.clickable { clickAction },
verticalAlignment = Alignment.CenterVertically,
)
{
Text(
modifier = Modifier
.weight(1f)
.padding(6.dp)
.wrapContentWidth(Alignment.Start),
text = title,
)
Image(
painter = icon,
contentDescription = "icon"
)
}
}但是,这个clickAction不起作用。具体来说,在显示屏幕时出于某种原因调用了clickAction,而在单击Row时不调用clickAction。
它的名称如下。
class AddActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
...
setContent {
MyTheme {
...
AddMain()
}
}
}
}
@Composable
fun AddMain() {
BarcodeLayout()
},
}
@Composable
fun BarcodeLayout() {
Column(Modifier.fillMaxWidth()) {
Text(text = {...})
MyInputRow(
title = ...,
bgColor = ...,
icon = ...,
clickAction = scanBarcode()
)
}
}
fun scanBarcode() {
Timber.d("call scanBarcode")
}我也不知道原因。请帮帮我。
发布于 2022-03-10 15:12:14
有两个选项,你可以尝试。
备选案文1:
.clickable { clickAction() }
或备选案文2:
.clickable(clickAction)
https://stackoverflow.com/questions/71424295
复制相似问题