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

鸿蒙RichEditor

实现多行文本可以改变颜色和计数的效果~RichEditor
在这里插入图片描述

import { Log } from '@tencent/wechat_open_sdk';
@Preview
@Entry
@Component
struct CeshiPage {@State noteTitle: string = ''@State isEditing: boolean = falsecontroller: RichEditorController = new RichEditorController();options: RichEditorOptions = { controller: this.controller };// 工具栏状态@State isBold: boolean = false@State isItalic: boolean = false@State currentFontSize: number = 16@State currentColor: Color = Color.Black@State characterCount: number = 0@State maxCharacters: number = 280build() {Column() {// 字符计数显示Row() {Text(`${this.characterCount}/${this.maxCharacters}`).fontSize(14).fontColor(this.characterCount > this.maxCharacters ? Color.Red : Color.Gray)}.width('100%').margin({ bottom: 8 })// 富文本编辑器RichEditor(this.options).placeholder('分享你的想法...').onIMEInputComplete((value: RichEditorTextSpanResult) => {console.info("spanIndex:" + value.spanPosition.spanIndex);console.info("spanRange:[" + value.spanPosition.spanRange[0] + "," + value.spanPosition.spanRange[1] + "]");console.info("offsetInSpan:[" + value.offsetInSpan[0] + "," + value.offsetInSpan[1] + "]");console.info("value:" + value.value);}).onDeleteComplete(() => {}).onSelectionChange((range: RichEditorRange) => {console.info("onSelectionChange, (" + range.start + "," + range.end + ")");this.characterCount=range.end!!+0}).width('100%').height(120).borderRadius(8).backgroundColor(Color.White).padding(12).borderWidth(2).margin(10).borderColor(Color.Gray)}}updateCharacterCount() {// 计算当前字符数let spans = this.controller.getSpans()let totalChars = 0spans.forEach(item => {// 根据实际的span结构计算字符数// 注意:具体的span结构需要参考官方文档totalChars = item.spanPosition.spanIndex;this.characterCount = totalChars})}
}
http://www.dtcms.com/a/319215.html

相关文章:

  • 使用萤石云播放视频及主题模版配置
  • python安装部署rknn-toolkit2(ModuleNotFoundError: No module named ‘rknn_toolkit2‘)
  • 技术速递|Copilot Coding Agent:自定义设置步骤更可靠、更易于调试
  • P8250 交友问题
  • 表单元素与美化技巧:打造用户友好的交互体验
  • zookeeper因jute.maxbuffer启动异常问题排查处理
  • 如何开发一个运行在windows系统服务器上的服务
  • “物联网+职业本科”:VR虚拟仿真实训室的发展前景
  • 纳米陶瓷与光子集成:猎板PCB定义下一代VR硬件的技术蓝图
  • 【unity实战】使用Unity程序化生成3D随机地牢(附项目源码)
  • 飞机起落架轮轴深孔中间段电解扩孔内轮廓测量 - 激光频率梳 3D 轮廓检测
  • 如何将Dubbo从Zookeeper平滑地迁移到Nacos?
  • 38.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--增加日志记录器
  • Android视图状态以及重绘
  • Java面试宝典:类加载
  • 利用vue.js2X写前端搜索页面,express写后端API接口展现搜索数据
  • SymPy 中 atan2(y, x)函数的深度解析
  • vue3对比vue2的性能优化和提升 :Vue 3 vs Vue 2
  • ArkTS: McPointChart
  • 【Redis面试精讲 Day 16】Redis性能监控与分析工具
  • 从Web2.0到Web3.0——用户体验如何演进
  • 树莓派安装中文输入法
  • Day09 Tlisa登录认证
  • Linux总线,设备和驱动关系以及匹配机制解析
  • FPGA学习笔记——VGA显示静态图片(ROM IP核)
  • 【博弈 拓扑序 缩点】P9220 「TAOI-1」椎名真昼|省选-
  • Bosco-and-Mancuso Filter for CFA Image Denoising
  • 如何快速掌握Excel公式?14天轻松通关
  • LeetCode 面试经典 150_数组/字符串_除自身以外数组的乘积(13_238_C++_中等)(前缀积)
  • Swift 实战:高效设计 Tic-Tac-Toe 游戏逻辑(LeetCode 348)