news 2026/4/3 4:44:25

android compose 对话框AlertDialog中软键盘弹出后TextField多个挤压变形

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
android compose 对话框AlertDialog中软键盘弹出后TextField多个挤压变形

让内容可滑动

//关键点 val scrollState = rememberScrollState() AlertDialog( containerColor = DialogBg, modifier = Modifier .widthIn(min = 400.dp) .fillMaxWidth(0.3f) //关键点 .windowInsetsPadding(WindowInsets.safeDrawing), onDismissRequest = { }, properties = DialogProperties( dismissOnBackPress = true, dismissOnClickOutside = true, // usePlatformDefaultWidth = false, // 禁用平台默认宽度,避免尺寸波动 decorFitsSystemWindows = false // 禁用系统窗口适配,减少布局冲突 ), title = { Row(verticalAlignment = Alignment.CenterVertically) { Image( painter = painterResource(R.drawable.warning), contentDescription = "菜单", modifier = Modifier.size(20.dp) ) Spacer(modifier = Modifier.width(8.dp)) Text(text = title, fontSize = 22.sp) } }, text = { //关键点 Column(modifier = Modifier.verticalScroll(scrollState)) { if (!firstPrompt.isBlank()) { CustomOutlinedTextField( label = { Text(firstStrDes) }, value = firstPrompt, singleLine = true, readOnly = true, enabled = false, onValueChange = { }, keyboardOptions = KeyboardOptions( keyboardType = KeyboardType.Text, imeAction = ImeAction.Done ), modifier = Modifier .height(55.dp) .fillMaxWidth(0.95f), contentPadding = PaddingValues(start = 10.dp, end = 2.dp), colors = OutlinedTextFieldDefaults.customColors(), ) Spacer(modifier = Modifier.height(8.dp)) } CustomExposedDropdownMenu( modifier = Modifier .height(55.dp) .fillMaxWidth(0.95f), tempShow, labelStr, selectedOptionText = selectedOptionText ) { result -> selectedOptionTextId.value = result.getShowId() } Spacer(modifier = Modifier.height(8.dp)) CustomOutlinedTextField( label = { Text(textInputDes) }, value = editString.value, singleLine = true, onValueChange = { editString.value = it }, keyboardOptions = KeyboardOptions( keyboardType = KeyboardType.Number, imeAction = ImeAction.Done ), modifier = Modifier .height(55.dp) .fillMaxWidth(0.95f), contentPadding = PaddingValues(start = 10.dp, end = 2.dp), colors = OutlinedTextFieldDefaults.customColors(), ) } }, confirmButton = { TextButton(onClick = { if (editString.value.isEmpty()) { ToastUtil.showToast("请输入${textInputValue}") return@TextButton } // 根据选中的ID找到对应的T对象 val selectedItem = showSelectList.find { it.getShowId() == selectedOptionTextId.value } if (null == selectedItem) { ToastUtil.showToast("请选择$labelStr") return@TextButton } okClick?.invoke(selectedItem, editString.value) dialogState.value = false }) { Text(text = "确认") } }, dismissButton = { TextButton(onClick = { dialogState.value = false }) { Text(text = "取消") } }, )
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 18:17:39

YOLOFuse茶叶加工厂卫生检查:异物混入实时拦截

YOLOFuse茶叶加工厂卫生检查:异物混入实时拦截 在一条茶叶生产线的深夜作业中,车间内蒸汽弥漫、灯光昏暗。传送带上缓缓流动的嫩叶间,一块微小的塑料碎片悄然混入——这种场景对传统视觉检测系统而言几乎是“隐形”的灾难。然而,在…

作者头像 李华
网站建设 2026/3/31 1:22:38

重构Agent Skills:从上下文爆炸到高效工作流的实战启示

在AI工具深度融入开发流程的今天,Agent Skills作为大语言模型扩展能力的核心载体,早已成为开发者提升效率的关键。但很多人在使用过程中,往往会陷入“信息越多越好用”的误区,最终遭遇上下文膨胀、性能卡顿等一系列问题。一位网友…

作者头像 李华
网站建设 2026/4/3 2:29:38

YOLOFuse药物研发过程监控:反应釜温度实时跟踪

YOLOFuse药物研发过程监控:反应釜温度实时跟踪 在现代制药实验室里,一个看似平静的反应釜背后,可能正进行着剧烈的放热反应。如果无法及时发现局部过热或密封异常,轻则影响产物纯度,重则引发泄漏甚至爆炸。传统的点式温…

作者头像 李华
网站建设 2026/4/3 4:41:51

YOLOFuse学习率调度机制解析:余弦退火策略

YOLOFuse学习率调度机制解析:余弦退火策略 在现代目标检测系统中,一个常被忽视却至关重要的细节,往往决定了模型能否从“能用”迈向“好用”——那就是学习率的调度方式。尤其是在多模态场景下,比如同时处理可见光(RGB…

作者头像 李华
网站建设 2026/3/26 13:52:15

PyCharm激活码永久免费?别信!但YOLOFuse完全开源

YOLOFuse:当多模态检测遇上开箱即用的深度学习环境 你有没有经历过这样的场景?深夜调试代码,就为了跑通一个目标检测模型——PyTorch版本不对、CUDA报错、ultralytics装不上……结果三天过去了,还没开始训练。更别提在低光照环境…

作者头像 李华
网站建设 2026/4/1 3:44:36

YOLOFuse支持Windows系统吗?当前仅限Linux环境说明

YOLOFuse支持Windows系统吗?当前仅限Linux环境说明 在智能感知技术快速演进的今天,夜间监控、自动驾驶和边境巡检等场景对目标检测系统的鲁棒性提出了前所未有的挑战。单一可见光摄像头在低照度或烟雾环境中极易失效,而红外成像虽能穿透黑暗却…

作者头像 李华