[英]How can I define a color in Color.kt with simple way when I use Jetpack Compose?
我可以使用代碼A在Android Studio向導自動生成的Color.kt文件中定義顏色,沒關系。
我希望定義一個基於顏色的MaterialTheme.colors
,但是代碼 B 返回以下錯誤。
@Composable 調用只能在 @Composable function 的上下文中發生
目前,我必須使用代碼 C,不太好,有沒有更好的方法?
代碼 A
val IconColor = Color(0xFF2E7D32)
代碼 B
val IconColor = MaterialTheme.colors.onSurface.copy(alpha = 0.76f)
代碼 C
@Composable
fun IconColor(): Color {
return MaterialTheme.colors.onSurface.copy(alpha = 0.76f)
}
你得到這個是因為MaterialTheme.colors
這個字段的吸氣劑正在使用@compsable
scope,所以我找到了兩種方法,你可以用Colors.kt
的方式聲明你的變量。
1:
val IconColor1: @Composable () -> Color = { MaterialTheme.colors.onSurface.copy(alpha = 0.76f) }
2:
val IconColor2: Color @Composable get() = MaterialTheme.colors.onSurface.copy(alpha = 0.76f)
我希望這會有所幫助
Studio 有材料顏色的來源。 只需Ctrl
+ Click
類/顏色的名稱即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.