2026/5/20 22:56:35
网站建设
项目流程
淮南网站建设淮南,有哪些可以在线做app的网站有哪些,罗定市城乡规划建设局网站,wordpress基础模板下载一、背景
在开发鸿蒙 APP 登录页时#xff0c;会遇到这样的体验问题#xff0c;当用户点击输入框弹出软键盘时#xff0c;整个页面会被默认的上推模式带起#xff0c;导致顶部的标题栏被推出可视区域#xff0c;严重影响用户体验。
备注#xff1a;以下解决方法为…一、背景在开发鸿蒙 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#keyboardavoidmode11KeyboardAvoidMode配置键盘避让页面的避让模式其中KeyboardAvoidMode.RESIZE表示压缩模式四、解决问题核心方案配置setKeyboardAvoidMode(KeyboardAvoidMode.RESIZE)API 11解决软键盘弹出后顶部控件无法固定的问题可以通过setKeyboardAvoidMode来配置虚拟键盘弹出时页面的避让模式为压缩模式。在aboutToAppear生命周期里面配置键盘避让模式为压缩模式