news 2026/5/8 4:30:58

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/5/7 6:22:27

Elasticsearch设置密码:定期更换策略实施方法

Elasticsearch设置密码:如何科学实施定期更换策略 在当今企业数据爆炸式增长的背景下,Elasticsearch 已成为日志分析、实时监控和全文检索系统的核心组件。然而,一个常被忽视的问题是—— 默认安装的 Elasticsearch 是“裸奔”的 。 没有身…

作者头像 李华
网站建设 2026/5/4 16:00:17

YOLOFuse地铁站台拥挤度分析:高峰时段人流预警

YOLOFuse地铁站台拥挤度分析:高峰时段人流预警 在早晚高峰的地铁站台上,人群如潮水般涌动。监控屏幕前,值班人员紧盯着画面,却难以从密密麻麻的人流中判断何时该启动应急疏导——人工监看不仅效率低,还极易因疲劳漏判关…

作者头像 李华
网站建设 2026/5/5 11:40:36

数据重塑的艺术:R语言中的reshape与pivot_longer/pivot_wider应用

在数据分析的过程中,我们常常会遇到需要将数据从宽格式转换为长格式,或者从长格式转换为宽格式的情况。R语言提供了多种方法来实现这种数据重塑,其中包括reshape函数和tidyr包中的pivot_longer与pivot_wider函数。今天我们将通过一个实际的例子来探讨这些方法的应用。 背景…

作者头像 李华
网站建设 2026/4/29 16:57:36

Power BI 中计算首次通过率和总通过率

在使用 Power BI 进行数据分析时,如何高效地计算产品质量检测的首次通过率(1stPassYield)和总通过率(TotalPassYield)是许多质量控制分析师关心的问题。本文将通过实际案例,展示如何在 Power BI 中使用 DAX 表达式计算这些关键性能指标,并在仪表板上展示。 案例背景 假…

作者头像 李华
网站建设 2026/4/25 4:10:13

YOLOFuse能否检测车辆?交通监控应用场景拓展

YOLOFuse在交通监控中的车辆检测能力解析 在城市道路日益繁忙、自动驾驶与智能交通系统快速演进的今天,一个核心问题始终困扰着视觉感知工程师:如何让摄像头“看得清”夜晚、雾霾或逆光下的车辆? 传统基于可见光的目标检测模型在白天表现优…

作者头像 李华
网站建设 2026/5/4 8:21:29

Screen to Gif新手教程:零基础快速上手指南

Screen to Gif 实战指南:从零开始制作专业级 GIF 动画 你有没有遇到过这样的场景? 想在 GitHub 上提交一个 Bug,却不知道怎么描述清楚操作步骤;写技术文档时,一张静态截图根本说不明白复杂的交互流程;做教…

作者头像 李华