HarmonyOS 鸿蒙Next Text组件中文本两端对齐怎么实现

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Text组件中文本两端对齐怎么实现

Text组件中文本两端对齐怎么实现,给Text设置了宽度,设置了属性.textAlign(TextAlign.JUSTIFY),文本内容两端对齐依然不生效怎么解决

Text(“文本内容”)
.width(100)
.fontSize(14)
.textAlign(TextAlign.JUSTIFY)

5 回复

cke_389.png

[@Entry](/user/Entry)
[@Component](/user/Component)
struct Page29 {
  build() {
    Column() {
      Flex({ direction: FlexDirection.Row, wrap: FlexWrap.NoWrap, justifyContent: FlexAlign.SpaceBetween }) {
        ForEach('文本内容'.split(''), (item: string, index: number) => {
          Text(item)
            .fontSize(14)
        })
      }.width(100)
      .backgroundColor(Color.Pink)
    }
    .height('100%')
    .width('100%')
  }
} 

补充,多行的话,把 FlexWrap.NoWrap 改成 FlexWrap.Wrap

当textAlign属性设置为TextAlign.JUSTIFY时,需要根据文本内容设置wordBreak属性,且最后一行文本不参与两端对齐,为水平对齐首部效果。

WordBreak11+

元服务API: 从API version 11开始,该接口支持在元服务中使用。

名称 描述
NORMAL CJK(中文、日文、韩文)文本可以在任意2个字符间断行,而Non-CJK文本(如英文等)只能在空白符处断行。
BREAK_ALL 对于Non-CJK的文本,可在任意2个字符间断行。对于CJK与NORMAL效果一致。
BREAK_WORD 与BREAK_ALL相同,对于Non-CJK的文本可在任意2个字符间断行,一行文本中有断行破发点(如空白符)时,优先按破发点换行,保障单词优先完整显示。若整一行文本均无断行破发点时,则在任意2个字符间断行。对于CJK与NORMAL效果一致。
Text("文本内容")
  .width(100)
  .fontSize(14)
  .wordBreak(WordBreak.NORMAL)
  .textAlign(TextAlign.JUSTIFY)

最后一行文本不参与两端对齐,内容只有一行就没有两端效果了?

在HarmonyOS(鸿蒙)开发中,实现Next Text组件的文本两端对齐,通常可以通过设置Text组件的textAlign属性为TextAlign.Justify来实现。但是,请注意,不是所有的Text组件都直接支持Justify对齐方式,这取决于具体的组件API和版本。

如果你正在使用的Text组件或布局不支持直接设置两端对齐,你可能需要考虑使用自定义的TextLayout或者使用Flex布局结合多个Text组件来模拟两端对齐的效果。

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部