簡體   English   中英

UI 列表不更新 jetpack 與 mutableList 組合但數據更新

[英]UI List not updating jetpack compose with mutableList but data updates

為什么我的列表沒有更新? 我昨天花了一整天,調試這個和研究,但我找不到任何可以幫助我的東西。 我的片段中有一個伴侶 object,它最初是一個空的 mutableList:

class MainTillLayoutFragment : Fragment() {
    companion object {
        var mBasket = mutableListOf<Product?>()
    }
...
}

我有一個名為 addToBasket 的方法。 它獲取“產品”項作為參數並將其添加到 mBasket:

    private fun addToBasket(product: Product) {
        mBasket.add(product)
        println("PRODUCTS ADDED NEW BASKET IS $mBasket")
    }

然后我有一個可組合的 function,它在 items() function 中使用 mBasket 來遍歷每個產品並在lazyColumn的每一行中顯示一個文本:

 LazyColumn(
     modifier = Modifier
         .background(color = Color.Red)
         .fillMaxSize(),
     content = {
          items(mBasket) {
                if (it != null) {
                     Text(text = it.name)
                      }
                }
         }
   )

數據確實會更新但是 UI 沒有,上面的代碼有什么問題我應該嘗試一下嗎?

提前謝謝大家:)

我找到了修復如果有人需要它,而不是使用 mutableListOf<>(),嘗試使用 mutableStateListOf<>(),它應該跟蹤 STATE 並自動為您重新組合視圖!

在我的情況下,而不是

    var mBasket = mutableListOf<Product?>()

我應該做的

    var mBasket = mutableStateListOf<Product?>()

暫無
暫無

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

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