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、文本计算: 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 TextArea如何设置单行的行高?
286浏览 • 1回复 待解决
如何判断har是否混淆了?
774浏览 • 1回复 待解决
Text组件是否支持多行显示
2016浏览 • 1回复 待解决
textOverflow怎么按字母截断
799浏览 • 1回复 待解决
textfield的截断属性不生效
2856浏览 • 1回复 待解决