HarmonyOS 单行Text是否被截断隐藏?

有一个text文本,设置最大行数为1,并设置overflow: TextOverflow.Ellipsis。但是目前有一个功能,如果该行文字有被省略部分,则有一个展开按钮,所以如何判断这1行文字有没有被省略部分呢?

HarmonyOS
2024-10-08 11:17:09
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu

目前Text组件没有自动感知文字是否被省略的功能,需要根据设备的宽度和内容的宽度进行计算。可以使用measure模块的measureText计算出文本的宽度,再根据手机/平板/折叠屏的屏幕宽减去其它算出组件的宽度,二者相比较则可判断是否溢出。示例如下:

// 获取文本的宽度  
import measure from '@ohos.measure' // 导入模块  
@Entry  
@Component  
struct Index {  
  @State textWidth: number = measure.measureText({  
    textContent: "Hello word",  
    fontSize: '50px'  
  })  
  build() {  
    Row() {  
      Column() {  
        Text(`The width of 'Hello World': ${this.textWidth}`)  
      }  
      .width('100%')  
    }  
    .height('100%')  
  }  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

请参考如下资料实现:

1、文本计算: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-measure-V5

2、屏幕计算: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-display-V5

分享
微博
QQ
微信
回复
2024-10-08 16:16:24
相关问题
HarmonyOS 字符串太长截断
733浏览 • 1回复 待解决
怎么解决HilLog日志打印信息截断?
262浏览 • 1回复 待解决
HarmonyOS LineSpace对单行也生效
583浏览 • 1回复 待解决
HarmonyOS TextArea如何设置单行的行高?
726浏览 • 1回复 待解决
HarmonyOS 单行超长文本换行不生效
656浏览 • 1回复 待解决
HarmonyOS 单行图文混排输入框
782浏览 • 1回复 待解决
如何判断har是否混淆了?
1319浏览 • 1回复 待解决
Text组件是否支持多行显示
2712浏览 • 1回复 待解决
HarmonyOS Text组件是否支持文字描边
860浏览 • 1回复 待解决