HarmonyOS 鸿蒙Next文字缩放
HarmonyOS 鸿蒙Next文字缩放
@Entry
@Component
struct Index {
@State boxWidth: number = 180
build() {
Column({ space: 28 }) {
Text('拖动滑动条改变盒子宽度')
.fontSize(18)
.fontWeight(FontWeight.Medium)
.fontColor('#11141A')
Slider({
value: this.boxWidth,
min: 100,
max: 320,
step: 1,
style: SliderStyle.OutSet
})
.width('80%')
.onChange((value: number) => {
this.boxWidth = value
})
Row() {
Image($r('app.media.startIcon'))
.width(30)
.aspectRatio(1)
.margin({right:4})
Text('宽度变化文字自适应')
.fontColor('#FFFFFF')
.fontWeight(FontWeight.Medium)
.maxFontSize(24)
.minFontSize(10)
.maxLines(1)
.flexShrink(1)
.textOverflow({ overflow: TextOverflow.Ellipsis })
}
.width(this.boxWidth)
.height(80)
.padding({ left: 12, right: 12 })
.backgroundColor('#3377FF')
.borderRadius(12)
.justifyContent(FlexAlign.Center)
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
.alignItems(HorizontalAlign.Center)
.backgroundColor('#F7F8FA')
}
}
更多关于HarmonyOS 鸿蒙Next文字缩放的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
HarmonyOS 鸿蒙Next中,文字缩放由系统字体大小设置与应用内fontSize属性共同控制。应用默认跟随系统缩放,通过followSystem配置决定是否自适应。文本组件支持maxFontSize和minFontSize约束缩放边界,使用fp单位实现动态调整。基于ArkUI声明式框架,缩放行为自动适配布局,无需手动处理。
这段代码展示了HarmonyOS中文字随容器宽度自适应缩放的效果。关键在于Text组件设置了maxFontSize和minFontSize,当外层Row的宽度通过Slider改变时,文字会在10~24vp范围内自动调整字号;同时配合flexShrink(1)允许文字收缩、maxLines(1)限制单行、textOverflow显示省略号,从而在宽度不足时优雅处理。
