解决鸿蒙(Harmony)中键盘弹起导致标题栏被顶走的问题
文章描述了早期鸿蒙系统中键盘弹出导致标题栏消失的问题,并介绍了API 10新增的避让机制解决此问题,通过使用expandSafeArea([SafeAreaType.KEYBOARD])保持标题栏固定,配合zIndex()和backgroundColor()优化显示效果。
·
先看翻车名场面

如图所示,聊天页面大致结构:标题栏+会话列表+聊天输入框。
在正常输入编辑交互场景中,键盘弹起时标题栏应保持固定,其它跟随自适应顶起,然而“早期”鸿蒙中,它的表现相当逆天,直接把标题栏给顶没了。

众所周知,我的《仿微信APP》项目早期是基于API 9的,没有相关api解决此类问题,不少童鞋也在后台私信反馈该问题,给我愁坏了。
然而终于等来了春天,API 10加入了一套避让机制,可以借用其中的expandSafeArea来解决问题:
Toolbar({ title: this.name })
...... 忽略代码 ......
.expandSafeArea([SafeAreaType.KEYBOARD]) // 关键代码1,核心
.zIndex(999) // 关键代码2,可选
.backgroundColor("#f1f1f1") // 关键代码3,可选
代码解析
expandSafeArea([SafeAreaType.KEYBOARD])可以让Toolbar规避键盘弹起带来的布局变动,即固定不动zIndex()为了Toolbar处于布局顶层,防止“顶起”时被其它组件覆盖,设置的数值随意,合适就行backgroundColor()设置标题栏背景色,不设置则背景透明,“顶起”时叠加显示其它组件,极为酸爽
接下来看效果吧

需要鸿蒙微信源码的童鞋可跟进 《鸿蒙(HarmonyOS NEXT)版微信APP》文章获取。
更多推荐

所有评论(0)