解决鸿蒙(Harmony)中键盘弹起导致标题栏被顶走的问题

先看翻车名场面

如图所示,聊天页面大致结构:标题栏+会话列表+聊天输入框。

在正常输入编辑交互场景中,键盘弹起时标题栏应保持固定,其它跟随自适应顶起,然而“早期”鸿蒙中,它的表现相当逆天,直接把标题栏给顶没了。

众所周知,我的《仿微信APP》项目早期是基于API 9的,没有相关api解决此类问题,不少童鞋也在后台私信反馈该问题,给我愁坏了。

然而终于等来了春天,API 10加入了一套避让机制,可以借用其中的expandSafeArea来解决问题:

Toolbar({ title: this.name })
    ...... 忽略代码 ......
    .expandSafeArea([SafeAreaType.KEYBOARD]) // 关键代码1,核心
    .zIndex(999) // 关键代码2,可选
    .backgroundColor("#f1f1f1") // 关键代码3,可选

代码解析

  1. expandSafeArea([SafeAreaType.KEYBOARD]) 可以让Toolbar规避键盘弹起带来的布局变动,即固定不动
  2. zIndex() 为了Toolbar处于布局顶层,防止“顶起”时被其它组件覆盖,设置的数值随意,合适就行
  3. backgroundColor()设置标题栏背景色,不设置则背景透明,“顶起”时叠加显示其它组件,极为酸爽

接下来看效果吧

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值