#鸿蒙通关秘籍#如何实现自定义安全键盘的布局?

HarmonyOS
5天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
JWT寒星孤月

采用TextInputcustomKeyboard属性设置自定义键盘,确保输入框激活后不会打开系统输入法,而是加载应用自定义的键盘组件。键盘的布局包括分为标题栏和键盘网格布局。数字键盘可以使用43的网格布局。然而,对于大小写键盘和特殊字符键盘的不规则布局,需要拆分更小单元例如420的网格,这样每个按键都能占用整数单元。

typescript Column() { this.titleBar();

Grid() { ForEach(this.items, (item: IKeyAttribute) => { GridItem() { this.myGridItem(item) } .width('100%') .height(this.itemHeight) .rowStart(item?.position?.[0]) .columnEnd(item?.position?.[1]) .columnStart(item?.position?.[2]) .columnEnd(item?.position?.[3]) .backgroundColor(item.backgroundColor) .borderRadius($r("app.integer.key_border_radius")) .onClick(() => { // 处理点击事件 }) }, (item: IKeyAttribute, index: number) => JSON.stringify(item) + index) } .margin({ bottom: $r("app.integer.key_board_marin_bottom") }) .columnsTemplate(this.curKeyboardType === EKeyboardType.NUMERIC ? "1fr 1fr 1fr" : "1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr") .rowsTemplate("1fr 1fr 1fr 1fr") .rowsGap(this.rowSpace) .columnsGap(this.columnSpace) .width('100%') .height(this.itemHeight * this.rowCount + this.rowSpace * (this.rowCount - 1)) } .width('100%') .padding({ left: this.columnSpace, right: this.columnSpace }) .backgroundColor(Color.Black)

分享
微博
QQ
微信
回复
5天前
相关问题
HarmonyOS 数字自定义键盘如何实现
306浏览 • 1回复 待解决
鸿蒙怎么实现自定义布局Dialog
9214浏览 • 2回复 已解决
HarmonyOS 自定义键盘
237浏览 • 1回复 待解决