欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 【每日学点HarmonyOS Next知识】swiper样式、日期选择、自定义弹窗键盘、文本组件换行、富文本适配

【每日学点HarmonyOS Next知识】swiper样式、日期选择、自定义弹窗键盘、文本组件换行、富文本适配

2025/3/12 17:51:36 来源:https://blog.csdn.net/sjw890821sjw/article/details/146143071  浏览:    关键词:【每日学点HarmonyOS Next知识】swiper样式、日期选择、自定义弹窗键盘、文本组件换行、富文本适配
1、HarmonyOS swiper组件样式?

可在样式中设置即可,参考如下demo

@Entry
@Component
struct SwiperDemo {private swiperController: SwiperController = new SwiperController();build() {Column({ space: 5 }) {Swiper(this.swiperController) {Text('0').width(250).height(250).backgroundColor(Color.Gray).textAlign(TextAlign.Center).fontSize(30)Text('1').width(250).height(250).backgroundColor(Color.Green).textAlign(TextAlign.Center).fontSize(30)Text('2').width(250).height(250).backgroundColor(Color.Pink).textAlign(TextAlign.Center).fontSize(30)}.indicator(true).margin({right:60})Row({ space: 12 }) {Button('showNext').onClick(() => {this.swiperController.showNext(); // 通过controller切换到后一页})Button('showPrevious').onClick(() => {this.swiperController.showPrevious(); // 通过controller切换到前一页})}.margin(5)}.width('100%').margin({ top: 5 })}
}
2、HarmonyOS DatePickerDialog. 返回的数据?

DatePickerDialog. 返回的数据

setFullYear方法默认月份值从0开始,单独取出来值时需要加1

3、HarmonyOS 自定义弹窗、自定义键盘自动关闭问题?

通过CustomDialogController弹出一个自定制的弹窗内容。请问,自定义弹窗是否可以实现以下效果:假设弹窗未覆盖区域有很多其他视图,如滚动视图、按钮等,希望这些视图发生点击、长按、滚动时能够自动关闭弹窗,这些视图的事件很零散,在每个事件中都插入关闭弹窗的代码有些不现实。autoCancel设置为true时,能够优先关闭弹窗,但是会拦截一次用户操作,如弹窗弹出时,点击一个按钮,会先关闭弹窗,第二次点击时才能触发按钮点击事件,这种交互不符合期望。期望能够一次点击,既触发按钮事件,也能够关闭弹窗。

首先对于自定义键盘的问题,输入框类的组件在customKeyboard()方法中在输入控件失去焦点时,关闭自定义键盘,可以通过stopEditing方法控制键盘的关闭,以TextInput组件为例,可以参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-textinput-V5#ZH-CN_TOPIC_0000001884917738__customkeyboard10

其次,对于自定义弹窗问题,当前可以使用onWillDismiss()回调结合业务方自行设计处理逻辑实现关闭弹窗且触发事件,比如:通过监听CustomDialogController的onWillDismiss()回调,在回调中判断DismissDialogAction的reason属性为TOUCH_OUTSIDE:

onWillDismiss:(dismissDialogAction: DismissDialogAction)=> {if (dismissDialogAction.reason == DismissReason.TOUCH_OUTSIDE) {dismissDialogAction.dismiss()// 接着由业务方自行处理后续逻辑}
}

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5
在上面监听到点击遮罩层时,先让自定义弹窗消失,然后可以通过事件通知的形式发送事件,在事件订阅处处理接收到的事件,可以根据不同的事件ID或者是传递的不同的data来区分不同组件需要处理的事件逻辑,不同组件的事件逻辑通过定义不同的方法处理:

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-emitter-V5

4、HarmonyOS Text组件的wordBreak换行破发点咨询?

Text组件的wordBreak换行破发点除了空格还有什么?部分场景的换行破发点可能在”,“或者“,”; 会导致一整段字符串换行的情况。如果用BreakALL的话,有些标题断句会有点歧义 比如12kg 第一行末尾是1 第二行开头是2kg,但是BreakWord的话,换行破发点好像又只出现在空格处。

建议是用WordBreak.BREAK_WORD,API的说明:Non-CJK text can be wrapped at any character and if a complete word can be preserved in space breaks, the word must be kept on the line.说明这里是有一个灵活判断的,不仅仅是针对空格处换行这么简单,可以明确看到换行会对一行的最后一个字符做校验(区分非CJK和CJK字符),非CJK字符会任意打断,同WordBreak.BREAK_ALL,CJK字符会保持同一语义的字符在一行,所以明显对于中文和英文混合的场景,WordBreak.BREAK_WORD更合适一些

5、HarmonyOS ide中富文本中图片适配?

可以使用RichEditor组件,该组件是支持图文混排和文本交互式编辑的组件,文档如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-richeditor-V5

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com