当前位置: 首页 > news >正文

网站体验分析深圳网站建设知了网络

网站体验分析,深圳网站建设知了网络,seo关键词是怎么优化的,鲜花网站建设图片【HarmonyOS】解决自定义弹框和键盘之间安全距离的问题 一、问题背景 我们在应用开发评论输入框时#xff0c;常规的需求样式是#xff1a;输入框view和键盘贴近#xff0c;上半部展示信息区的形式#xff0c;这样的设计#xff0c;方便用户不割裂的去评论发言。 但是在…【HarmonyOS】解决自定义弹框和键盘之间安全距离的问题 一、问题背景 我们在应用开发评论输入框时常规的需求样式是输入框view和键盘贴近上半部展示信息区的形式这样的设计方便用户不割裂的去评论发言。 但是在使用鸿蒙提供的自定义弹框时会发现键盘和弹框之间有个安全空隙。就算弹框布局是置底每次显示键盘都会将弹框顶上去。 自定义弹框源码 CustomDialog Component struct CustomDialogExample {Link textValue: stringLink inputValue: stringcontroller?: CustomDialogControllercancel: () void () {}confirm: () void () {}build() {Column() {TextInput({ placeholder: , text: this.textValue }).height(60).width(90%).onChange((value: string) {this.textValue value}).defaultFocus(true)Text(Whether to change a text?).fontSize(16).margin({ bottom: 10 })Flex({ justifyContent: FlexAlign.SpaceAround }) {Button(cancel).onClick(() {if (this.controller ! undefined) {this.controller.close()this.cancel()}}).backgroundColor(0xffffff).fontColor(Color.Black)Button(confirm).onClick(() {if (this.controller ! undefined) {this.inputValue this.textValuethis.controller.close()this.confirm()}}).backgroundColor(0xffffff).fontColor(Color.Red)}.margin({ bottom: 10 })}.borderRadius(10).height(px2vp(500)).offset({ x: 0, y: 16}) } }调用页面源码 Entry Component struct TextPage {State textValue: string State inputValue: string click medialogController: CustomDialogController | null new CustomDialogController({builder: CustomDialogExample({cancel: () { this.onCancel() },confirm: () { this.onAccept() },textValue: $textValue,inputValue: $inputValue}),cancel: this.exitApp,autoCancel: true,onWillDismiss:(dismissDialogAction: DismissDialogAction) {console.info(reason JSON.stringify(dismissDialogAction.reason))console.log(dialog onWillDismiss)if (dismissDialogAction.reason DismissReason.PRESS_BACK) {dismissDialogAction.dismiss()}if (dismissDialogAction.reason DismissReason.TOUCH_OUTSIDE) {dismissDialogAction.dismiss()}},keyboardAvoidMode: KeyboardAvoidMode.DEFAULT,alignment: DialogAlignment.Bottom,// offset: { dx: 0, dy: -20 },gridCount: 4,customStyle: false,cornerRadius: 10,backgroundColor: Color.Black})// 在自定义组件即将析构销毁时将dialogController置空aboutToDisappear() {this.dialogController null // 将dialogController置空}onCancel() {console.info(Callback when the first button is clicked)}onAccept() {console.info(Callback when the second button is clicked)}exitApp() {console.info(Click the callback in the blank area)}build() {Column() {Button(this.inputValue).onClick(() {if (this.dialogController ! null) {this.dialogController.open()}}).backgroundColor(0x317aff)}.width(100%).margin({ top: 5 })} }二、解决方案 了解安全弹框的问题需要对自定义弹框的实现有比较深刻的认识才能规避。 首先我们要搞清楚自定义弹框的基本用法会发现在CustomDialogExample中build是弹框布局的具体样式的一部分在调用页面TextPage 其实也会设置弹框的一些样式属性例如customStyle。 这是系统系统的基本样式如果customStyle该属性为false那我们的弹框样式只需要关心弹框内的布局整个弹框外围是交给系统定制样式处理。 所以当我们设置customStyle该属性为true就会发现弹框view会贴合键盘但是整体弹框的边框都没了。 此时我们只需要处理边框样式和弹框背景色即可 .borderRadius(15) .backgroundColor(Color.White) .borderWidth(5) 源码示例 自定义弹框源码 CustomDialog Component struct CustomDialogExample {Link textValue: stringLink inputValue: stringcontroller?: CustomDialogControllercancel: () void () {}confirm: () void () {}build() {Column() {TextInput({ placeholder: , text: this.textValue }).height(60).width(90%).onChange((value: string) {this.textValue value}).defaultFocus(true)Text(Whether to change a text?).fontSize(16).margin({ bottom: 10 })Flex({ justifyContent: FlexAlign.SpaceAround }) {Button(cancel).onClick(() {if (this.controller ! undefined) {this.controller.close()this.cancel()}}).backgroundColor(0xffffff).fontColor(Color.Black)Button(confirm).onClick(() {if (this.controller ! undefined) {this.inputValue this.textValuethis.controller.close()this.confirm()}}).backgroundColor(0xffffff).fontColor(Color.Red)}.margin({ bottom: 10 })}.width(90%).borderRadius(15).backgroundColor(Color.White).borderWidth(5).height(px2vp(500)).offset({ x: 0, y: 16})} }调用页面源码 Entry Component struct TextPage {State textValue: string State inputValue: string click medialogController: CustomDialogController | null new CustomDialogController({builder: CustomDialogExample({cancel: () { this.onCancel() },confirm: () { this.onAccept() },textValue: $textValue,inputValue: $inputValue}),cancel: this.exitApp,autoCancel: true,onWillDismiss:(dismissDialogAction: DismissDialogAction) {console.info(reason JSON.stringify(dismissDialogAction.reason))console.log(dialog onWillDismiss)if (dismissDialogAction.reason DismissReason.PRESS_BACK) {dismissDialogAction.dismiss()}if (dismissDialogAction.reason DismissReason.TOUCH_OUTSIDE) {dismissDialogAction.dismiss()}},keyboardAvoidMode: KeyboardAvoidMode.DEFAULT,alignment: DialogAlignment.Bottom,gridCount: 4,customStyle: true,cornerRadius: 10,backgroundColor: Color.Black})// 在自定义组件即将析构销毁时将dialogController置空aboutToDisappear() {this.dialogController null // 将dialogController置空}onCancel() {console.info(Callback when the first button is clicked)}onAccept() {console.info(Callback when the second button is clicked)}exitApp() {console.info(Click the callback in the blank area)}build() {Column() {Button(this.inputValue).onClick(() {if (this.dialogController ! null) {this.dialogController.open()}}).backgroundColor(0x317aff)}.width(100%).margin({ top: 5 })} }
http://www.dnsts.com.cn/news/165047.html

相关文章:

  • 海淀网站设计公司做网站的请示
  • 网站设计与建设报告网址导航怎样推广
  • 宁晋网站建设wordpress固定链接怎么设置好
  • 最好看的免费网站源码微信运营模式
  • 网站建设流程及规范济南网络科技公司排名
  • 厦门市建设工程造价协会官方网站做推送实用网站
  • 国内酒店网站建设wordpress主题免费
  • 企业网站优化方案模板福建省建设厅网站
  • 插画素材网站有哪些没钱怎么做网站
  • 在征婚网站上认识做期货网站 系统 的开发技术
  • 吉林市哪有做网站的游戏开发大亨破解版
  • 服务器维护网站建设教程东莞 营销网站
  • 东莞网站建设业务的公司广州公关公司排名
  • 网站建设维护公司排名长春外贸网站建设4435
  • 怎么登陆建设工程网站网站新版
  • 达建网站的需要温州敎玩具网站建设
  • 钓鱼网站链接网站关键词优化案例
  • 网站建设分金手指专业十八做图的软件网站
  • 中国常用网站温州设计集团有限公司官网
  • 怎么建立网站赚钱商城网站建设代理商
  • 深圳住房城乡建设局网站首页天津建设网站哪家好
  • 网站平台方案设计wordpress地方门户
  • win10 电脑做网站服务器吗优质网站建设公司哪家好
  • 谷多网站灰色网站欣赏
  • 男女做的那些事情的网站徐州网络推广服务
  • 大连做网站公司哪家好沈阳网页设计公司排名
  • jn建站系统官网美妆网站建设
  • 查不到备案的网站网站的登录弹窗怎么做
  • 专业网站建设-好发信息网建设文化产业网站的方案
  • 景区网站建设的目标定位公众号登陆入口