簡體   English   中英

使用 Jetpack Compose 時,如何以簡單的方式在 Color.kt 中定義顏色?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM