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文字缩放的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next中,文字缩放由系统字体大小设置与应用内fontSize属性共同控制。应用默认跟随系统缩放,通过followSystem配置决定是否自适应。文本组件支持maxFontSizeminFontSize约束缩放边界,使用fp单位实现动态调整。基于ArkUI声明式框架,缩放行为自动适配布局,无需手动处理。

这段代码展示了HarmonyOS中文字随容器宽度自适应缩放的效果。关键在于Text组件设置了maxFontSizeminFontSize,当外层Row的宽度通过Slider改变时,文字会在10~24vp范围内自动调整字号;同时配合flexShrink(1)允许文字收缩、maxLines(1)限制单行、textOverflow显示省略号,从而在宽度不足时优雅处理。

回到顶部