簡體   English   中英

為什么 Composable 列表在 Jetpack Compose 中不起作用?

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

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