JetPack Compose, animateColorAsSate

JetPack Compose, animateColorAsSate

使用此行时出现错误:

val surfaceColor: 颜色由 animateColorAsState( if (isExpanded) MaterialTheme.colors.primary else MaterialTheme.colors.surface, )

它显示以下警告:

属性 委托必须有一个 'getValue(Nothing?, KProperty*>)' 方法。 None 以下函数适用。 State.getValue(Any?, K属性<>) 其中 T = 内联运算符的颜色 State.getValue(thisObj: Any?, 属性: K属性<>): T定义在androidx.compose.runtime

确保您使用的是正确的导入语句。

比较并尝试用下面的正确语句替换您的导入语句。

import androidx.compose.animation.animateColorAsState
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.material.MaterialTheme
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color


@Composable
fun YourFunction() {

    var isExpanded by remember { mutableStateOf(false) }

    val surfaceColor: Color by animateColorAsState(
        if (isExpanded) MaterialTheme.colors.primary else MaterialTheme.colors.surface
    )

    Column(
        modifier = Modifier.clickable { isExpanded = !isExpanded }
    ) {

    }
}