HarmonyOS开发实战知识: UI开发技巧规范

 1、TextInput 输入框获取焦点(弹起键盘)

让TextInput再次获取焦点,并弹出键盘,可调用下面方法,参数为TextInput的id/key

focusControl.requestFocus("_TextInput") 

注意:这个方法虽然可以让TextInput获取到焦点,但经测试,不一定能保证键盘弹出。如果我们手动调用过隐藏键盘的方法,那么下次即使调用获取焦点,键盘也不会弹出。

为保险起见,这里需要再手动调用一下展示键盘的方法,确保键盘弹起。

手动调用弹起/收起键盘,callback也会返回有失败的情况: {"code":12800009,"message":"input method not attached."}

如上面所说,经测试,和我们手动调用和系统自动收起有关,手动调用的时候注意一下。

2、弹出对话框

CustomDialogController

构建一个CustomDialogController即可:

  private dialogController: CustomDialogController = new CustomDialogController({
    builder: Dialog(), // 自定义布局视图
    alignment: DialogAlignment.Center, // 显示位置
    customStyle: true
  })
  
  dialogController.open() //打开对话框

显示对话框,调用CustomDialogController的open()方法

Dialog内部视图

和普通创建视图组件无异,就是多了一个装饰器:@CustomDialog

@Component
@CustomDialog
export default struct CustomDialog {
  controller: CustomDialogController
  ...
  
  // 内部关闭对话框:
  this.controller.close()
}

内部需要关闭对话框,调用CustomDialogController的close()方法即可

3、RelativeContainer 如何实现宽/高自适应

如图所示,想实现视图中上半部分的布局样式。很显然,用RelativeContainer这个布局控件很合适。

然后,让第一个组件顶部与RelativeContainer的顶部对齐,下面密码视图与RelativeContainer的底部对齐。

对于开发过android的相对布局,按我们理解的来说,RelativeContainer的高度,此时就应该按最后贴齐方式,计算其内部组件的高度为RelativeContainer的高度。但实际效果却是如下图所示:

直接按类似高度 100% 实现了。

如何让RelativeContainer能够自适应其高度

这里就需要将宽/高设置为auto,同时,还要注意锚点的设置,不能有同方向的与__c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值