為什么要重新組合,我們必須使用按鈕中的 onClick 之類的事件?
例如,我的代碼是:
if (movieSearchinfo.movieorserie == "serie") {
val serie1 = remember { mutableStateOf(false) }
if (serie1.value == true) {
Column(
modifier = Modifier
.verticalScroll(
rememberScrollState()
)
.height(100.dp)
) {
LazyColumn(
modifier = Modifier
.padding(4.dp)
) {
items(movieDetail.value) { movieDetail ->
if (movieDetail.se == "1") {
serie1.value = true
GetSerieCard(
Modifier,
movieDetail
)
}
}
}
}
在我的最后一個 if 之后,我說:serie1.value = true,為什么 jetpack 不重新組合并且不制作我的第一個 if 的 UI?因為 serie1.value 現在變成了真的?
我在某個地方看到了我們可以使用的地方:
currentComposer.composition.recompose()
但我不知道他是什么意思。有誰知道我們如何使用它?我以某種方式使用它,但它沒有用。也許我用錯了
uj5u.com熱心網友回復:
為什么要重新組合,我們必須使用按鈕中的 onClick 之類的事件?
您不一定需要單擊按鈕來重新組合 Composable。由 Composable 讀取的實體MutableState,范圍或條件代碼塊應更改以觸發重組。
的值MutableState可以通過多種方式改變,包括用戶互動、有限或無限影片、異步操作結果(例如 Web 請求或從資料庫查詢回傳結果)。
對于條件代碼塊,如
if (serie1.value == true) {
// Composable content
}
條件必須為真才能進入重組。但是在您的代碼段中,如果它進入合成然后用戶單擊Button您的代碼段看起來不可能的,您將其更改為 true。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/508442.html
標籤:科特林 android-jetpack-compose 机器人喷气背包 喷气背包
上一篇:打開失敗:EACCES(權限被拒絕)但僅在Android10上
下一篇:此錯誤的原因是什么以及如何解決?
