【问题标题】:How to acces @Composable property within composable?如何访问可组合内的@Composable 属性?
【发布时间】:2021-02-25 08:55:43
【问题描述】:

假设我有一个可组合的 Je​​tpack:

Column(modifier = Modifier.height(48.dp)) {
    // stuff
    
    // access above modifier here?
    
    //more stuff
}

我在上面的列中添加了一个修饰符。

正如所指出的:如何访问该列中的修饰符?

【问题讨论】:

  • Column() 是函数,不是类,modifier 是函数参数,不是属性。 AFAIK,您无法访问修饰符,除非由于某种原因该函数在其尾随 lambda 的接收器(您拥有 cmets 的位置)的任何接收器中公开该修饰符。如果您的目标是修改高度,则让高度由 MutableState 驱动并修改该状态,以强制重新组合。

标签: android kotlin android-jetpack android-jetpack-compose composable


【解决方案1】:

如您所见,Column 是一个函数,modifier 是一个函数参数。 如果你想在Column中使用修饰符,像这样:

val modifierColumn = Modifier.height(48.dp)
Column(modifier = modifierColumn) {
    // stuff

    // access above modifier here?
    Text("Hello Compose!",modifier = modifierColumn)
    //more stuff
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 2020-04-14
    • 1970-01-01
    相关资源
    最近更新 更多