我開始學習 Jetpack Compose,它看起來很困惑如何使用 material3 依賴項來實作一個簡單的快餐欄。
檔案顯示我需要一個腳手架,它需要一個帶有填充(?)的內容。我需要將我的螢屏可組合放在腳手架 lambda 中嗎?如何將我的訊息文本傳遞給 Snackbar?我有一個簡單的流收集器,用于來自視圖模型的事件,我想將錯誤文本傳遞給小吃欄。
Test()
LaunchedEffect(Unit) {
viewModel.loginEvent.collect {
when (it) {
is LoginViewModel.LoginEvent.Error -> {
// show snackbar with it.error
}
is LoginViewModel.LoginEvent.Success -> {
//
}
}
}
}
@Composable
fun Test() {
Box(modifier = Modifier.fillMaxSize()) {
//my composable screen
}
uj5u.com熱心網友回復:
您可以使用scaffoldHostState 在腳手架內顯示小吃店,是的,您應該使用scaffoldPadding 來填充topAppBar、navigationBar ...
你能試試這個嗎?
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun Screen() {
val snackbarHostState = remember { SnackbarHostState() }
val localCoroutineScope = rememberCoroutineScope()
LaunchedEffect(Unit) {
viewModel.loginEvent.collect {
when (it) {
is LoginViewModel.LoginEvent.Error -> {
// show snackbar with it.error
localCoroutineScope.launch {
snackbarHostState.showSnackbar(
message = "Error message"
)
}
}
// ...
}
}
}
Scaffold(
snackbarHost = { SnackbarHost(snackbarHostState) }
) { scaffoldPadding ->
Box(
modifier = Modifier
.padding(scaffoldPadding)
.fillMaxSize()
) {
// your composables ...
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/527377.html
標籤:安卓android-jetpack-compose小吃店材料3
上一篇:如何使用Bash洗掉非最新影像
