首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jetpack编写自定义布局单击“不工作”

Jetpack编写自定义布局单击“不工作”
EN

Stack Overflow用户
提问于 2022-03-10 12:38:56
回答 1查看 310关注 0票数 0

我创建了自己的类,名为MyInputRow。

代码语言:javascript
运行
复制
@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。

它的名称如下。

代码语言:javascript
运行
复制
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")
}

我也不知道原因。请帮帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-10 15:12:14

有两个选项,你可以尝试。

备选案文1:

.clickable { clickAction() }

或备选案文2:

.clickable(clickAction)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71424295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档