【HarmonyOS NEXT】解决:软键盘弹起导致页面整体上移、标题栏丢失的问题

一、背景

在开发鸿蒙 APP 登录页时,会遇到这样的体验问题,当用户点击输入框弹出软键盘时,整个页面会被默认的上推模式带起,导致顶部的标题栏被推出可视区域,严重影响用户体验。

备注:以下解决方法为(API 11+),低版本不适配哦!

二、具体问题

页面分为三个部分,顶部固定标题,中间是logo图标,底部是输入框。用户点击底部输入框时,页面弹出软键盘,顶部固定标题没有固定住,整体往上移动。

问题效果预览:图1是没弹出软键盘的场景,图2是弹出软键盘的场景。

问题代码示例如下:

@Extend(TextInput) function commonInputStyle(maxLength: number) { .placeholderColor('#999999') .borderRadius(8) .contentType(ContentType.PHONE_NUMBER) .caretStyle({ color: '#b35336', width: 2 }) .height(48) .maxLength(maxLength) .maxLines(1) .type(InputType.Number) .fontColor('#333333') .width("100%") .backgroundColor(Color.White) .padding({ left: 16, right: 16 }) .shadow({ radius: 4, color: '#00000008', offsetY: 2 }) } @Entry @Component export struct Index { @State phoneNumber: string = "" @State codeNumber: string = "" build() { Column() { Stack({ alignContent: Alignment.Top }) { Column() .width('100%') .height('100%') .backgroundColor('#F8F9FA') // 标题栏 Column() { Text('密码登录') .fontColor('#333333') .fontSize(20) .fontWeight(500) .margin({ top: 10 }) // logo模块 Image($r("app.media.startIcon")) .width(120) .objectFit(ImageFit.Contain) .margin({ top: 110, bottom: 60 }) .borderRadius(16) .shadow({ radius: 8, color: '#00000010', offsetY: 4 }) // 输入模块 Column() { TextInput({ text: this.phoneNumber, placeholder: "请输入手机号" }) .commonInputStyle(11) .onChange((value: string) => { this.phoneNumber = value }) TextInput({ text: this.codeNumber, placeholder: "请输入短信验证码" }) .commonInputStyle(6) .margin({ top: 20 }) .onChange((value: string) => { this.codeNumber = value }) } .width('100%') .padding({ top: 200, left: 32, right: 32 }) } .width('100%') .height('100%') .justifyContent(FlexAlign.Start) } } .width('100%') .height('100%') } }

三、问题定位

3.1、确定问题

标题栏无固定布局,依赖页面整体排版,键盘弹起时随页面上移丢失

首先默认场景下UI是没有啥问题的,主要是在键盘弹起后UI整体上移了,那问题就出现键盘弹起的过程上,是没有正确配置键盘避让模式

3.2、键盘背景知识:

官网文档指引👉:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-uicontext-e#keyboardavoidmode11

KeyboardAvoidMode配置键盘避让页面的避让模式,其中KeyboardAvoidMode.RESIZE表示压缩模式

四、解决问题

核心方案:配置setKeyboardAvoidMode(KeyboardAvoidMode.RESIZE)(API 11+)

解决软键盘弹出后顶部控件无法固定的问题,可以通过setKeyboardAvoidMode来配置虚拟键盘弹出时,页面的避让模式为压缩模式。

在aboutToAppear生命周期里面配置键盘避让模式为压缩模式👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1173480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我用AI分析测试日志,自动聚类相似失败模式

在当今快速迭代的软件开发环境中,测试日志是质量保障(QA)的核心资产。它们记录了测试用例的执行结果、错误信息和系统行为,但面对成千上万的日志条目,手动分析变得低效且易出错。尤其当多个失败案例(failur…

学长亲荐!自考必备TOP10一键生成论文工具深度测评

学长亲荐!自考必备TOP10一键生成论文工具深度测评 自考论文写作工具测评:为何要关注2026年榜单? 对于正在备战自考的学子来说,撰写一篇结构严谨、内容充实的论文是毕业路上的关键一环。然而,面对繁杂的资料收集、格式排…

用AI生成“测试风险热力图”:一眼看出哪里最危险

测试风险热力图的变革性价值 在软件测试领域,风险无处不在——一个未发现的漏洞可能导致系统崩溃、数据泄露或用户流失。传统测试方法依赖人工经验判断风险优先级,但主观性强、效率低下,尤其在复杂系统中易遗漏关键区域。2026年,…

【HarmonyOS NEXT】如何监听软键盘的弹出和收起事件

一、背景在开发鸿蒙 APP 登录页时,当输入框键盘弹起,需要改变logo图标与输入框的间距,让整个页面完全展示,提升用户体验二、具体问题默认情况下,logo图标与标题栏和输入框给的固定间距,页面能够完全展示&am…

深聊安阳同昌新材料,它在行业的口碑排名及靠谱性解读 - 工业品牌热点

本榜单依托有色金属冶炼设备领域全维度市场调研与真实客户口碑,深度筛选出五家标杆企业,为金属回收加工企业选型提供客观依据,助力精准匹配适配的设备及技术服务伙伴。 TOP1 推荐:安阳同昌新材料有限公司 推荐指数…

完整教程:我用 Pygame + DeepSeek 做了一个中文 AI RPG 游戏!

完整教程:我用 Pygame + DeepSeek 做了一个中文 AI RPG 游戏!2026-01-17 12:44 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !impo…

我让AI读了1000个GitHub测试项目,总结出“最佳实践”

‌一、测试工程的四大支柱‌基于对1000 GitHub 测试项目、科技巨头公开文档及行业实践的深度分析,软件测试的最佳实践已形成清晰的四维框架:维度核心实践代表项目/工具关键价值‌测试架构‌测试金字塔(80%单元 15%集成 5%E2E)Go…

如何看待“AI写作导致人类语言退化”?

当语言成为算法的训练集 在软件测试领域,我们习惯将系统缺陷分为功能异常与性能衰减两类。而AI写作工具的普及,正悄然触发一场关乎人类语言能力的“性能衰减危机”——它并非直接崩溃,而是在流畅输出的表象下,逐步消解表达的精确…

CentOS服务器上yum/rpm搭建GitLab CE

(1).参考文献GitLab英文官方网站安装方法:https://docs.gitlab.com/install/install_methods/ (2).实验环境4核8G CentOS7.9.2009已设置阿里云yum源,并且yum -y install epel-release,关闭SELinux和防火墙(如果不关…

2026年行业内比较好的石笼网供应商口碑推荐,抗冲击抗腐蚀石笼网/双隔板石笼网/镀锌低碳钢丝石笼网,石笼网供应商找哪家 - 品牌推荐师

随着国家基建工程与生态治理项目的持续推进,石笼网作为河道护坡、边坡防护、生态修复等场景的核心材料,其技术性能与供应稳定性直接影响工程质量。据行业数据统计,2025年国内石笼网市场规模已突破120亿元,但市场集…

‌AI驱动的测试环境配置检查清单:全面指南

一、引言:测试环境配置的重要性与AI的赋能作用‌测试环境是软件测试的基石,一个配置不当的环境会导致虚假缺陷、延误发布,甚至业务风险。据统计,约30%的测试失败源于环境问题(来源:业界报告)。随…

实用指南:CAPL学习-SOME/IP交互层-值处理类函数1

实用指南:CAPL学习-SOME/IP交互层-值处理类函数1pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

Maven教程(Maven简介之依赖管理工具)

依赖管理工具:能够帮助我们管理依赖,为我们提供了一个统一的下载途径,能够自动的从镜像网站或中央仓库中去下载,同时也解决了jar包与jar包之间的依赖关系

基于8086的步进电机系统数码管显示转速数值含报告(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于8086的步进电机系统数码管显示转速数值含报告(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 proteus仿真汇编源码基于8086步进电机,8086电机系统转数档位数值正转前面显示0,反转显示-,…

SAP ALV 显示 百分比 符号前置转换历程

FUNCTION conversion_exit_zfh_output . *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" REFERENCE(INPUT) *" EXPORTING *" REFERENCE(OUTPUT) *"-…

为什么AI生成的测试用例比人工更“刁钻”?

重新定义“刁钻”测试用例 在软件测试领域,“刁钻”测试用例特指那些能有效暴露隐藏缺陷、覆盖边缘场景的用例,它们往往超出常规逻辑,挑战系统极限。传统人工测试依赖于测试工程师的经验和直觉,但受限于认知偏差和时间压力&#…

固定翼无人机俯仰姿态模糊PID控制(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

固定翼无人机俯仰姿态模糊PID控制(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 内容包含飞行动力学建模、模型特性分析、控制器设计。程序,仿真,word报告。 通过对无人机进行受力分析和力矩分析&…

‌用AI模拟“多用户并发冲突”:不是线程,是业务逻辑冲突

业务逻辑并发冲突的本质是“状态机失效”,而非线程安全问题‌在软件测试领域,传统并发测试聚焦于线程锁、内存可见性、死锁检测等系统层问题。但真实生产环境中,80%以上的高可用性故障,源于‌业务规则在多用户并发下被绕过或破坏‌…

四旋翼无人机轨迹跟踪控制仿真(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

四旋翼无人机姿态控制仿真系统(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 [商品介绍] 本商品提供完整的四旋翼无人机姿态控制仿真系统,包括详细的课程报告与MATLAB仿真源代码。系统基于PID控制策略&#xff0…