簡體   English   中英

如何使用 Jetpack Compose 提高性能(在 @Composable 函數中組裝某些東西時)

[英]How to Improve performance with Jetpack Compose (when assembling something inside a @Composable function)

假設我的應用程序中有兩個可組合項:

@Composable
fun CoreKeyboard(keyboardKeys: List<List<KeyboardKey>>, ...) {
    // ...
}

@Composable
fun NumberKeyboard(...) {
    val keyboardKeys = listOf(
        listOf(KeyboardKey("1"), KeyboardKey("2"), KeyboardKey("3")),
        listOf(KeyboardKey("4"), KeyboardKey("5"), KeyboardKey("6")),
        listOf(KeyboardKey("7"), KeyboardKey("8"), KeyboardKey("9")),
        listOf(KeyboardKey("0"))
    )

    CoreKeyboard(keyboardKeys = keyboardKeys, ...)

}

如果我沒記錯的話,這種方法的性能不是很好,因為在每次重組中NumberKeyboard中的keyboardKeys鍵都會被重新組裝。

做這個的最好方式是什么?

我考慮過使用by remember { mutableStateOf(...) } ,但keyboardKeys是不可變的。 它仍然是一個好方法嗎?

如果你有一些計算起來很昂貴的東西,並且你只想在你的可組合上計算它一次,只需用remember包裝它

val keyboardKeys = remember {
    listOf(
    listOf(KeyboardKey("1"), KeyboardKey("2"), KeyboardKey("3")),
    listOf(KeyboardKey("4"), KeyboardKey("5"), KeyboardKey("6")),
    listOf(KeyboardKey("7"), KeyboardKey("8"), KeyboardKey("9")),
    listOf(KeyboardKey("0"))
    )
}

如果你想改變值以便觀察它,你只需要mutableStateOf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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