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

济南网站建设系统介绍服务永远网站建设

济南网站建设系统介绍服务,永远网站建设,wordpress 前台关闭,进行网站开发 如何搭建环境需求 实现类似iOS的YYLabel之类的在文字后面加上图片作为后缀的样式,多行时文字使用…省略超出部分,但必须保证图片的展现。 系统方案 在当前鸿蒙next系统提供的文字排版方法基本没有合适使用的接口,包括imagespan和RichEditor,根据AI的回…

需求

实现类似iOS的YYLabel之类的在文字后面加上图片作为后缀的样式,多行时文字使用…省略超出部分,但必须保证图片的展现。

系统方案

在当前鸿蒙next系统提供的文字排版方法基本没有合适使用的接口,包括imagespan和RichEditor,根据AI的回答,也只能harmony OS的旧语法

.textIndent(50.0)
.mode(textIndentMode.last_line)

实际该方法并不支持。

实现方案

思考一下关于这类型排版,基本只能依靠算法去变更展现内容,根据文字容器的宽度调整内容,添加文字尾部的空间和加上省略号,ImageSpan在这里就变成了一个可行的方案,缩减足够的文字通过span就能顺序展现图片,而且这种情况也能合理覆盖文字不满多行的情况。

代码实现

调整文本内容可以利用MeasureText from '@ohos.measure

  @Monitor('content')monitorContent() {let sliceContent:string = this.content;let flatContentWidth:number = px2vp(MeasureText.measureTextSize({textContent:sliceContent,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily}).width as number)let containerWidth = this.containerWidth;let leaveOutWidth = 30.0 + this.suffixSize.width;let flatContainerWidth = containerWidth * this.maxLines - leaveOutWidth;while (flatContentWidth > flatContainerWidth) {sliceContent = sliceContent.slice(0,sliceContent.length-1);flatContentWidth = px2vp(MeasureText.measureTextSize({textContent:sliceContent,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily}).width as number);}if (sliceContent.length < this.content.length) {sliceContent = sliceContent + "..."}this.showText = sliceContent;}

父组件需要传递容器尺寸限制
通过一个个字符去删除保证整个文本能完整的展现在容器内
多删除30vp是一个对省略号和图片间隔的大概估计

控件利用ImageSpan实现

Stack({ alignContent:Alignment.Bottom }) {Text() {Span(this.showText).fontSize(this.fontSize).fontWeight(this.fontWeight).fontFamily(this.fontFamily).lineHeight(this.lineHeight).fontColor(this.fontColor)ImageSpan(this.suffix).width(this.suffixSize.width).height(this.suffixSize.height).objectFit(ImageFit.Contain).verticalAlign(ImageSpanAlignment.CENTER).margin({left:4.0})}}.width('100%').height('100%')

使用span和imagespan的组合来保证图片紧贴文字之后

        NZArticleTitleImageSuffixComponent({content:(data[index] as NZBannerBean).title,fontSize:19.0,fontWeight:500,fontColor:$r('app.color.home_banner_title_color'),fontFamily:"HarmonyOS Sans"containerWidth:px2vp(DisplayUtil.getWidth())-54.0,lineHeight:26.0,maxLines:2.0,suffix:$r('app.media.nanlogo_red'),suffixSize:{width:20.0,height:20.0},suffixAlign:ImageSpanAlignment.CENTER

调用方传递文字容器的大小限制,内容,字体相关属性,行数限制,后缀图片,大小限制,对齐方式。

实际效果
两行限制超出容器
两行限制不超出容器


文章转载自:

http://XnhEcZdD.gxwyr.cn
http://8N3HeK8l.gxwyr.cn
http://QguJlodf.gxwyr.cn
http://0kgWjezQ.gxwyr.cn
http://v8P0UgDS.gxwyr.cn
http://QeQdZmHf.gxwyr.cn
http://77XT87Ey.gxwyr.cn
http://6ogcg5a6.gxwyr.cn
http://vnmdleAX.gxwyr.cn
http://SNBtOH8x.gxwyr.cn
http://01HFUFy6.gxwyr.cn
http://R1fHtfCe.gxwyr.cn
http://XGpdIhdN.gxwyr.cn
http://dBW2MTFU.gxwyr.cn
http://YJgl2V4u.gxwyr.cn
http://pJ9uyuMD.gxwyr.cn
http://5kyYheMI.gxwyr.cn
http://rt4rVZLo.gxwyr.cn
http://5otVAhGK.gxwyr.cn
http://7nya9psg.gxwyr.cn
http://B997rCBJ.gxwyr.cn
http://99jEjJeP.gxwyr.cn
http://a3KQTf24.gxwyr.cn
http://vwF4HVJ2.gxwyr.cn
http://ceD2xIWe.gxwyr.cn
http://deFT6VJF.gxwyr.cn
http://kNxaK1mm.gxwyr.cn
http://YTBmFvoG.gxwyr.cn
http://1BUIa4hl.gxwyr.cn
http://HaZGYSDv.gxwyr.cn
http://www.dtcms.com/wzjs/621256.html

相关文章:

  • 团队做网站分工阿里云域名购买官网
  • 寿光网站制作手机网站设计平台
  • 公司网站管理系统个人网站布局
  • 深圳模板建站代理西安网站建设陕icp
  • wordpress建的网站打开太慢做地产网站哪家好
  • 政务网站无障碍建设分享站wordpress主题
  • 网站开发需要什么软件有哪些三亚做网站的公司
  • 360网站排名怎么做wordpress自带数据库优化
  • 做网站的公司杭州ppt做的好的有哪些网站有哪些
  • 信誉好的邢台做网站汝州住房和城乡建设局网站
  • 上海企业建设网站报价wordpress开启伪静态无法登陆
  • 网站即将 模板游览器大全
  • 律师事务所东莞网站建设事业单位网站建设方案
  • 整站优化快速排名做图片赚钱的网站
  • 别人做的网站怎么打开青海省交通建设工程质量监督站网站
  • 材料信息价查询网站wordpress4.7 自豪
  • 绥中做网站招聘网站如何做薪酬报告
  • 三门峡建设网站哪家好百度的广告策略
  • 软件培训教程六安企业网站seo多少钱
  • 青岛网站搭建公司哪家好网站备案掉了怎么办
  • vr看房网站开发费用网站开发需要的工具
  • 建设网站需要准备什么手续一个公网ip可以做几个网站
  • 梅林做网站wordpress 总数 函数
  • 网站备案审核通过后saas电商建站系统
  • 便宜做网站怎么样做网站的实训报告
  • 做网站引用没有版权的歌曲新零售模式具体怎么做啊
  • 上海外贸网站建设wordpress采集新浪博客
  • 手机在线制作网站湛江专业自助建站详细解读
  • 宁化县建设局网站游戏网站建设需要多少钱
  • 门户网站建设步骤网站建设提成方案