[英]Why list of Composable does not work in Jetpack Compose?
我正在嘗試學習撰寫,但我不明白為什么列表推斷類型是List<Unit>
而不是List<()->Unit>
。 此外setContent
中的startingPoint()
不起作用。
@Composable
fun AudioScreen() {
Text(text = "dhgghf")}
@Composable
fun SearchScreen() {Text(text = "dhgghf")}
@Composable
fun startingPoint() {
val menurou = listOf(AudioScreen(),SearchScreen())
menurou[0]
}
那是因為 function AudioScreen 和 SearchScreen 返回 Unit 而不是 () -> Unit。 但這與可組合無關..讓我們看看下面的例子
fun firstFunction(): () -> Unit = { Unit }
val listForFirstFunction: List<() -> Unit> = listOf(firstFuntion())
fun secondFunction(): Unit = Unit
val listForSecondFunction: List<Unit> = listOf(secondFunction)
因為 firstFunction 返回一個() -> Unit
類型 listForFirstFunction 得到() -> Unit
。 返回 Unit 的 secondFunction 也是如此,因此 listForSecondFunction 的類型是 Unit。
但是如果你想將 secondFunction 保存為 () -> Unit,你可以這樣寫:
val thirdListForFunction = listOf( {secondFunction()} )
然后使您能夠編寫thirdListForFunction[0].invoke()
此外 setContent 中的 startingPoint() 不起作用。
我想你在問為什么menurou[0]
不能正常工作? 那是因為menurou[0]
只是返回 Unit,而不是所需的 function AudioScreen()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.