我希望從字串資源中獲取文本,這取決于在下面的代碼之前指定的 item.route。
但是整個“when”運算式給了我錯誤:“型別不匹配:推斷的型別是 () -> Int 但應該是 Int。” 我不知道如何解決它。
Text(
text = stringResource(id = {
when (item.route) {
"menu_screen" -> R.string.menu
"orders_screen" -> R.string.orders
else -> R.string.orders
}
}),
textAlign = TextAlign.Center
)
uj5u.com熱心網友回復:
當您將括號括{ }起來時,它被解釋為 lambda 函式。“裸露”是指不在課程/樂趣/何時/if/else等之后。您需要洗掉放置在那里的額外括號。
Text(
text = stringResource(id =
when (item.route) {
"menu_screen" -> R.string.menu
"orders_screen" -> R.string.orders
else -> R.string.orders
}
),
textAlign = TextAlign.Center
)
其他一些語言(例如 Java)允許您用括號括住代碼,以限制內部宣告的變數的范圍或計算需要多個運算式的東西。要在 Kotlin 中執行此操作,您必須使用范圍行內函式,例如run { }.
uj5u.com熱心網友回復:
只需洗掉額外的花括號;)
Text(
text = stringResource(id =
when (item.route) {
"menu_screen" -> R.string.menu
"orders_screen" -> R.string.orders
else -> R.string.orders
}
),
textAlign = TextAlign.Center
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/461761.html
標籤:安卓 科特林 android-jetpack-compose
