全面讲解二极管分类:按功能划分的实用解析
2026/1/10 2:59:49
Snackbar 是一种轻量级反馈机制,它用于提供有关操作或动作的反馈
Snackbar 会在显示几秒后消失,也可以通过用户交互消失,包含一个可选的用户操作
valscope=rememberCoroutineScope()valsnackbarHostState=remember{SnackbarHostState()}vardescbyremember{mutableStateOf("")}Box(modifier=Modifier.fillMaxSize()){Column(modifier=Modifier.fillMaxSize(),horizontalAlignment=Alignment.CenterHorizontally){Button(onClick={scope.launch{valreuslt=snackbarHostState.showSnackbar(message="这是一条 Snackbar",actionLabel="关闭",duration=SnackbarDuration.Short)when(reuslt){SnackbarResult.ActionPerformed->{desc="Snackbar 手动关闭"}SnackbarResult.Dismissed->{desc="Snackbar 自动关闭"}}}desc="Snackbar 显示"}){Text("显示 Snackbar")}Text(desc)}SnackbarHost(modifier=Modifier.align(Alignment.BottomCenter).padding(16.dp),hostState=snackbarHostState)}@ComposableinlinefunBox(modifier:Modifier=Modifier,contentAlignment:Alignment=Alignment.TopStart,propagateMinConstraints:Boolean=false,content:@ComposableBoxScope.()->Unit)| 参数 | 说明 |
|---|---|
| modifier | 设置基础属性 |
| contentAlignment | 设置子元素的默认对齐方式 |
| propagateMinConstraints | 设置是否将最小约束传递给子元素 |
| content | 主要内容区域 |
Box(modifier=Modifier.size(200.dp).background(Color.LightGray)){Text("test1",modifier=Modifier.align(Alignment.BottomStart))Text("test2",modifier=Modifier.align(Alignment.TopEnd))}Box(modifier=Modifier.fillMaxSize()){Text(text="居中文本",modifier=Modifier.align(Alignment.Center))Button(onClick={},modifier=Modifier.align(Alignment.BottomCenter)){Text("底部按钮")}}Box(modifier=Modifier.size(200.dp).background(Color.LightGray),contentAlignment=Alignment.Center,){Text("test")}Box(modifier=Modifier.size(200.dp)){Box(modifier=Modifier.matchParentSize().background(Color.Red.copy(alpha=0.3f)))Text("test",modifier=Modifier.align(Alignment.Center))}Box(modifier=Modifier.background(Color.LightGray).widthIn(min=100.dp,max=300.dp).heightIn(min=100.dp,max=300.dp)){Box(modifier=Modifier.background(Color.Red.copy(alpha=0.3f)))}Box(modifier=Modifier.background(Color.LightGray).widthIn(min=100.dp,max=300.dp).heightIn(min=100.dp,max=300.dp),propagateMinConstraints=true){Box(modifier=Modifier.background(Color.Red.copy(alpha=0.3f)))}Box(modifier=Modifier.background(Color.LightGray).widthIn(min=100.dp,max=300.dp).heightIn(min=100.dp,max=300.dp),propagateMinConstraints=true){Box(modifier=Modifier.size(150.dp).background(Color.Red.copy(alpha=0.3f)))}Box(modifier=Modifier.size(200.dp).background(Color.LightGray),){Box(modifier=Modifier.size(150.dp).background(Color.Red).align(Alignment.TopStart))Box(modifier=Modifier.size(150.dp).background(Color.Green).align(Alignment.Center))}Box(modifier=Modifier.size(200.dp).background(Color.LightGray).zIndex(1f),){Box(modifier=Modifier.size(150.dp).background(Color.Red).align(Alignment.TopStart).zIndex(3f))Box(modifier=Modifier.size(150.dp).background(Color.Green).align(Alignment.Center).zIndex(2f))}