Obsidian知识图谱构建方法论:科研工作流智能管理系统架构设计
2026/1/3 6:24:29
/** * 根布局用Box,该容器与屏幕内容平级,以实现类似对话框弹窗效果。 * @param maxCount 最大计数 * @param isShow 是否显示容器 * @param onDismiss 关闭容器显示 * @param content 容器界面内容 */ @Composable fun CountDownContainer( maxCount: Int, isShow: Boolean, onDismiss: () -> Unit, content: @Composable (Int) -> Unit ) { var count by remember { mutableIntStateOf(maxCount) } LaunchedEffect(isShow) { //it是从0开始正数,+1才能减到0(尽管多数1秒) repeat(maxCount + 1) { count = maxCount - it delay(1000) } } if (count == 0) onDismiss() //数到0就关闭容器 if (isShow) { content(count) } }@Composable private fun Demo( ) { var isShow by remember { mutableStateOf(false) } Button({ isShowDialog = true }) { Text("点击弹窗") } CountDownContainer( maxCount = 5, isShow = isShow, onDismiss = { isShow = false } ) { Box( modifier = Modifier.size(200.dp).background(Color.Red), contentAlignment = Alignment.Center ) { Text("$it") } } }