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