JetPack Compose、animateColorAsSate

Ane*_*mad 2 android-jetpack android-jetpack-compose

使用此行时出现错误:

\n

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

\n

它显示以下警告:

\n

属性委托必须具有“getValue(Nothing?, KProperty*>)”方法。以下函数都不适合。\nState.getValue(Any?, KProperty< >) \xc2\xa0\xc2\xa0其中 T = \xc2\xa0\xc2\xa0inline 运算符的颜色 fun State.getValue(thisObj: Any? , 属性: KProperty< >): T 在 androidx.compose.runtime 中定义

\n

Raj*_*har 6

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

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

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 }
    ) {

    }
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢 Rajasekhar,我刚刚将 import androidx.compose.ui.graphics.Color 替换为 import androidx.compose.graphics.Color 并且它有效。 (3认同)