代碼參考:https://foso.github.io/Jetpack-Compose-Playground/material/alertdialog/
@Composable。
fun AlertDialogSample() {
MaterialTheme {
欄目 {
val openDialog = remember { mutableStateOf(false) }
Button(onClick = {
openDialog.value = true true
"Click me")
}
if (openDialog.value) {
AlertDialog(
onDismissRequest = {
//當用戶在對話框外或在后面點擊時,解散對話框。
//按鈕。如果你想禁用該功能,只需使用一個空的按鈕即可。
//> onCloseRequest.
openDialog.value = false
},
title = {
Text(text = "Dialog Title")
},
文本 = {
Text("這里有一個文本")
},
confirmButton = {
按鈕(
onClick = {
openDialog.value = false"This is the Confirm Button")
}
},
dismissButton = {
按鈕(
onClick = {
openDialog.value = false"This is the dismiss Button")
}
}
)
}
}
}
}
我已經了解了remember和mutableStateOf關鍵字。 但在這段代碼中,我認為 "remember "關鍵字是不必要的。
如果按鈕被點擊,變數openDialog為真。 而如果onDismissRequest,變數openDialog變為false
所有的功能都是由代碼作者被動控制的。(不是由remember關鍵字自動管理) 那么,為什么在這個代碼案例中使用 "remember"?uj5u.com熱心網友回復:
通過使用remember,可組合式存盤之前的組合值,否則它將每次都覆寫它。謝謝thracian.
參考:https://www.jetpackcompose.app/donut-hole-skipping/
uj5u.com熱心網友回復:
考慮到當openDialog的值是true,并且AlertDialogSample的父級因任何原因被重新組合,這將觸發AlertDialogSample的重新組合。如果你不使用remember,openDialog的值將被設定為false。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/306688.html
標籤:
