使用Text组件
========

[ArkUI](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkui-overview)开发框架在[NDK](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ndk-development-overview)接口中提供了Text组件，用于显示文本内容。Text组件支持丰富的样式设置，包括字体、颜色、对齐方式、文字效果等，还支持多种子组件，如[Span](#添加span)、[ImageSpan](#添加imagespan)、[StyledString](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ndk-styled-string)等，用于实现复杂的文本显示效果。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/97/v3/Vc69ffgGQ1KlpMcwGWIBuA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132314Z&HW-CC-Expire=86400&HW-CC-Sign=30B05BB9FE0463C8E66CCF49BF296A3EEFFFB694D966173A156083D23B1C39F5)

*   本篇示例仅提供核心接口的调用方法，完整的示例工程请参考[native\_node\_sample](https://gitcode.com/HarmonyOS_Samples/guide-snippets/tree/master/ArkUISample/native_node_sample)。
    
*   开发前需要先接入ArkTS页面，具体请参考[接入ArkTS页面](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ndk-access-the-arkts-page)。
    

#### 创建文本组件

Text组件是显示文本内容的基础组件，支持多种样式设置和子组件。

#### \[h2\]创建基础文本

使用[createNode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-arkui-nativemodule-arkui-nativenodeapi-1#createnode)接口创建Text组件，节点类型为ARKUI\_NODE\_TEXT。

ArkUI\_NodeHandle text = Manager::nodeAPI\_->createNode(ARKUI\_NODE\_TEXT);
ArkUI\_NumberValue textWidth\[\] = {{.f32 = VALUE\_300}};
ArkUI\_AttributeItem textWidthItem = {.value = textWidth, .size = VALUE\_1};
Manager::nodeAPI\_->setAttribute(text, NODE\_WIDTH, &textWidthItem);
ArkUI\_NumberValue textHeight\[\] = {{.f32 = VALUE\_30}};
ArkUI\_AttributeItem textHeightItem = {.value = textHeight, .size = VALUE\_1};
Manager::nodeAPI\_->setAttribute(text, NODE\_HEIGHT, &textHeightItem);

#### \[h2\]设置文本内容

通过[NODE\_TEXT\_CONTENT](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_content)属性设置Text组件的基本文本内容。

const char \*textContent = "this is text 2 this is text 2 this is text 2!!!! ";
ArkUI\_AttributeItem contentItem = {.string = textContent};
Manager::nodeAPI\_->setAttribute(text2, NODE\_TEXT\_CONTENT, &contentItem);

#### 设置文本样式

Text组件支持丰富的文本样式设置，包括字体、颜色、对齐方式等。

#### \[h2\]设置字体属性

通过如下属性设置字体大小、粗细、样式等基本属性。

**表1** 字体属性

| 属性 | 说明 |
| :-- | :-- |
| [NODE\_FONT\_SIZE](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_font_size) | 设置字体大小。 |
| [NODE\_FONT\_WEIGHT](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_font_weight) | 设置字体粗细。 |
| [NODE\_FONT\_STYLE](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_font_style) | 设置字体样式。 |
| [NODE\_FONT\_FAMILY](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_font_family) | 设置字体列表。 |

// 设置文字大小：28、文字颜色：0xFFFF0000（红色）
ArkUI\_NumberValue fontSize\[\] = {{.f32 = VALUE\_28}};
ArkUI\_AttributeItem fontSizeItem = {.value = fontSize, .size = VALUE\_1};
Manager::nodeAPI\_->setAttribute(text2, NODE\_FONT\_SIZE, &fontSizeItem);
ArkUI\_NumberValue fontColor = {.u32 = 0xFFFF0000};
ArkUI\_AttributeItem fontColorItem = {.value = &fontColor, .size = VALUE\_1};
Manager::nodeAPI\_->setAttribute(text2, NODE\_FONT\_COLOR, &fontColorItem);

// 字体样式：斜体样式（ARKUI\_FONT\_STYLE\_ITALIC）
ArkUI\_NumberValue fontStyleVal = {.i32 = ARKUI\_FONT\_STYLE\_ITALIC};
ArkUI\_AttributeItem fontStyleItem = {&fontStyleVal, VALUE\_1};
Manager::nodeAPI\_->setAttribute(text2, NODE\_FONT\_STYLE, &fontStyleItem);

// 字重：Bold（ARKUI\_FONT\_WEIGHT\_W800）
ArkUI\_NumberValue fontWeightVal = {.i32 = ARKUI\_FONT\_WEIGHT\_W800};
ArkUI\_AttributeItem textWeightItem = {.value = &fontWeightVal, .size = 1};
Manager::nodeAPI\_->setAttribute(text2, NODE\_FONT\_WEIGHT, &textWeightItem);

#### \[h2\]设置文本对齐

通过如下属性设置文本的水平对齐方式和垂直对齐方式。

**表2** 文本对齐属性

| 属性 | 说明 |
| :-- | :-- |
| [NODE\_TEXT\_ALIGN](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_align) | 设置文本水平对齐。 |
| [NODE\_TEXT\_VERTICAL\_ALIGN](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_vertical_align) | 设置文本垂直对齐。 |

*   设置文本水平对齐。
    
    // 水平对齐：居中对齐（ARKUI\_TEXT\_ALIGNMENT\_CENTER）
    ArkUI\_NumberValue intVal\_0 = {.i32 = ARKUI\_TEXT\_ALIGNMENT\_CENTER};
    ArkUI\_AttributeItem textAlignItem = {&intVal\_0, VALUE\_1};
    Manager::nodeAPI\_->setAttribute(text14, NODE\_TEXT\_ALIGN, &textAlignItem);
    
*   设置文本垂直对齐。
    
    // 垂直对齐：基线对齐（ARKUI\_TEXT\_VERTICAL\_ALIGNMENT\_BASELINE）
    ArkUI\_NumberValue vAlignVal = {.i32 = ARKUI\_TEXT\_VERTICAL\_ALIGNMENT\_BASELINE};
    ArkUI\_AttributeItem vAlignItem = {&vAlignVal, VALUE\_1};
    Manager::nodeAPI\_->setAttribute(text3, NODE\_TEXT\_VERTICAL\_ALIGN, &vAlignItem);
    

#### \[h2\]设置文本装饰线和效果

通过如下属性设置文本装饰线、阴影等效果。

**表3** 文本装饰线和效果属性

| 属性 | 说明 |
| :-- | :-- |
| [NODE\_TEXT\_DECORATION](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_decoration) | 设置文本装饰线。 |
| [NODE\_TEXT\_TEXT\_SHADOW](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_text_shadow) | 设置文字阴影效果。 |

*   设置文本装饰线。
    
    // 设置文本装饰线类型：下划线装饰（ARKUI\_TEXT\_DECORATION\_TYPE\_UNDERLINE）。文本装饰线样式：单实线（ARKUI\_TEXT\_DECORATION\_STYLE\_SOLID）。
    ArkUI\_NumberValue textDecoration\[\] = {
        {.i32 = ARKUI\_TEXT\_DECORATION\_TYPE\_UNDERLINE}, {.u32 = 0xFFFF0000}, {.i32 = ARKUI\_TEXT\_DECORATION\_STYLE\_SOLID}};
    ArkUI\_AttributeItem textDecorationItem = {.value = textDecoration, .size = VALUE\_3};
    Manager::nodeAPI\_->setAttribute(text3, NODE\_TEXT\_DECORATION, &textDecorationItem);
    
*   设置文字阴影效果。
    
    // 文字阴影效果属性
    ArkUI\_NumberValue textShadow\[\] = {
        {.f32 = VALUE\_5}, {.i32 = ARKUI\_SHADOW\_TYPE\_BLUR}, {.u32 = 0xFF0000FF}, {.f32 = VALUE\_5}, {.f32 = VALUE\_5}};
    ArkUI\_AttributeItem textShadowItem = {textShadow, VALUE\_5};
    Manager::nodeAPI\_->setAttribute(text4, NODE\_TEXT\_TEXT\_SHADOW, &textShadowItem);
    

#### 设置文本布局

Text组件支持多种文本布局设置，包括换行、行高、省略等。

#### \[h2\]设置文本换行

通过[NODE\_TEXT\_WORD\_BREAK](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_word_break)属性设置文本的断行规则。

// 设置断行规则：任意字符间断行
ArkUI\_NumberValue wordBreakVal = {.i32 = ARKUI\_WORD\_BREAK\_BREAK\_ALL};
ArkUI\_AttributeItem wordBreakItem = {&wordBreakVal, VALUE\_1};
Manager::nodeAPI\_->setAttribute(text3, NODE\_TEXT\_WORD\_BREAK, &wordBreakItem);

#### \[h2\]设置行高相关属性

通过如下属性设置文本的行高、行高倍数等属性。

从API version 22开始，Text组件支持使用倍数模式设置行高。

**表5** 行高属性

| 属性 | 说明 |
| :-- | :-- |
| [NODE\_TEXT\_LINE\_HEIGHT](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_line_height) | 设置行高。 |
| [NODE\_TEXT\_LINE\_HEIGHT\_MULTIPLE](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_line_height_multiple) | 设置行高倍数。从API version 22开始支持。 |
| [NODE\_TEXT\_HALF\_LEADING](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_half_leading) | 设置文本垂直居中。 |

*   设置文本行高。
    
    // 设置文本行高
    ArkUI\_NumberValue lineHeight = {.f32 = VALUE\_50};
    ArkUI\_AttributeItem lineHeightItem = {&lineHeight, VALUE\_1};
    Manager::nodeAPI\_->setAttribute(text4, NODE\_TEXT\_LINE\_HEIGHT, &lineHeightItem);
    
*   设置行高倍数。
    
    // 设置行高倍数
    ArkUI\_NumberValue value\[\] = {{.f32 = 2.0}};
    ArkUI\_AttributeItem item = {value, sizeof(value)/ sizeof(ArkUI\_NumberValue)};
    Manager::nodeAPI\_->setAttribute(text9, NODE\_TEXT\_LINE\_HEIGHT\_MULTIPLE, &item);
    

#### \[h2\]设置文本省略

通过如下属性设置文本溢出时的省略模式。

**表6** 文本省略属性

| 属性 | 说明 |
| :-- | :-- |
| [NODE\_TEXT\_MAX\_LINES](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_max_lines) | 设置最大行数。 |
| [NODE\_TEXT\_OVERFLOW](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_overflow) | 设置文本溢出方式。 |
| [NODE\_TEXT\_ELLIPSIS\_MODE](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_ellipsis_mode) | 设置省略模式。 |

// 设置最大行数
ArkUI\_NumberValue maxLinesValue\[\] = {{.i32 = VALUE\_3} };
ArkUI\_AttributeItem maxLinesItem = {maxLinesValue, VALUE\_1};
Manager::nodeAPI\_->setAttribute(text20, NODE\_TEXT\_MAX\_LINES, &maxLinesItem);

// 设置文本溢出：省略号
ArkUI\_NumberValue textOverFlowValue\[\] = { {.i32 = ARKUI\_TEXT\_OVERFLOW\_ELLIPSIS} };
ArkUI\_AttributeItem textOverFlowItem = {textOverFlowValue, VALUE\_1};
Manager::nodeAPI\_->setAttribute(text20, NODE\_TEXT\_OVERFLOW, &textOverFlowItem);

// 设置省略模式：省略行首内容
ArkUI\_NumberValue ellipsisModeValue1\[\] = { {.i32 = ARKUI\_ELLIPSIS\_MODE\_MULTILINE\_START} };
ArkUI\_AttributeItem ellipsisModeItem1 = {ellipsisModeValue1, VALUE\_1};
Manager::nodeAPI\_->setAttribute(text20, NODE\_TEXT\_ELLIPSIS\_MODE, &ellipsisModeItem1);

#### \[h2\]设置文本结尾空格优化

通过如下属性设置每行结尾空格是否优化。从API version 20开始，Text组件支持设置每行结尾空格是否优化处理。

**表8** 每行结尾空格处理属性

| 属性 | 说明 |
| :-- | :-- |
| [NODE\_TEXT\_OPTIMIZE\_TRAILING\_SPACE](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_optimize_trailing_space) | 设置每行结尾空格是否优化。从API version 20开始支持。 |

ArkUI\_NumberValue optimizeValue = {.i32 = true};
ArkUI\_AttributeItem optimizeTrailingSpaceItem = {&optimizeValue, VALUE\_1};
Manager::nodeAPI\_->setAttribute(text14, NODE\_TEXT\_OPTIMIZE\_TRAILING\_SPACE, &optimizeTrailingSpaceItem);

#### \[h2\]设置首行缩进和标点压缩

通过如下属性设置首行缩进和行首标点压缩。从API version 23开始，Text组件支持设置行首标点压缩。

**表7** 首行缩进和标点压缩属性

| 属性 | 说明 |
| :-- | :-- |
| [NODE\_TEXT\_INDENT](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_indent) | 设置首行缩进。 |
| [NODE\_TEXT\_COMPRESS\_LEADING\_PUNCTUATION](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_compress_leading_punctuation) | 设置行首标点压缩。从API version 23开始支持。 |

*   设置首行缩进。
    
    // 设置首行缩进
    ArkUI\_NumberValue indentVal = {.f32 = VALUE\_30};
    ArkUI\_AttributeItem indentItem = {&indentVal, VALUE\_1};
    Manager::nodeAPI\_->setAttribute(text3, NODE\_TEXT\_INDENT, &indentItem);
    
*   设置行首标点压缩。
    
    // 设置行首标点压缩
    ArkUI\_NumberValue value0\[\] = {{.i32 = true}};
    ArkUI\_AttributeItem item0 = {value0, sizeof(value0)/ sizeof(ArkUI\_NumberValue)};
    Manager::nodeAPI\_->setAttribute(text11, NODE\_TEXT\_COMPRESS\_LEADING\_PUNCTUATION, &item0);
    

#### 添加子组件

Text组件支持添加多种子组件，实现图文混排等复杂效果。

#### \[h2\]添加Span

通过[addChild](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-arkui-nativemodule-arkui-nativenodeapi-1#addchild)在Text中添加文本子组件，用于展示行内文本。Span组件需嵌入在Text组件中才能显示，单独使用时不会显示任何内容。

// span仅作为text的子组件形式展示
ArkUI\_NodeHandle span = Manager::nodeAPI\_->createNode(ARKUI\_NODE\_SPAN);
const char \*spanContent = "This is a span";
ArkUI\_AttributeItem spanContentItem = {.string = spanContent};
Manager::nodeAPI\_->setAttribute(span, NODE\_SPAN\_CONTENT, &spanContentItem);
if (span != nullptr) {
    // 设置Span背景样式
    ArkUI\_NumberValue spanBackground\[\] = {
        {.u32 = 0xFFE8F4F5}, // 背景颜色
        {.f32 = 5.0f},       // 左上角半径
        {.f32 = 5.0f},       // 右上角半径
        {.f32 = 5.0f},       // 左下角半径
        {.f32 = 5.0f}        // 右下角半径
    };
    ArkUI\_AttributeItem spanBackgroundItem = {.value = spanBackground, .size = VALUE\_5};
    Manager::nodeAPI\_->setAttribute(span, NODE\_SPAN\_TEXT\_BACKGROUND\_STYLE, &spanBackgroundItem);

    // 文本基线的偏移量属性
    ArkUI\_NumberValue baselineOffsetVal = {.f32 = VALUE\_10};
    ArkUI\_AttributeItem baselineOffsetItem = {&baselineOffsetVal, VALUE\_1};
    Manager::nodeAPI\_->setAttribute(span, NODE\_SPAN\_BASELINE\_OFFSET, &baselineOffsetItem);
    // 设置字体粗细
    ArkUI\_NumberValue fontWeight = {.i32 = ARKUI\_FONT\_WEIGHT\_W500};
    ArkUI\_AttributeItem fontWeightItem = {&fontWeight, VALUE\_1};
    Manager::nodeAPI\_->setAttribute(span, NODE\_IMMUTABLE\_FONT\_WEIGHT, &fontWeightItem);
    ArkUI\_NumberValue fontWeight1 = {.i32 = ARKUI\_FONT\_WEIGHT\_W500};
    ArkUI\_AttributeItem fontWeight1Item = {&fontWeight1, VALUE\_1};
    Manager::nodeAPI\_->setAttribute(text, NODE\_IMMUTABLE\_FONT\_WEIGHT, &fontWeight1Item);
    // 长按span组件，触发回调
    Manager::nodeAPI\_->registerNodeEvent(span, NODE\_TEXT\_SPAN\_ON\_LONG\_PRESS, EVENT\_SPAN\_LONG\_PRESS, nullptr);
    Manager::nodeAPI\_->registerNodeEventReceiver(&OnEventReceive);
}
Manager::nodeAPI\_->addChild(text, span);

#### \[h2\]添加ImageSpan

通过[addChild](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-arkui-nativemodule-arkui-nativenodeapi-1#addchild)在文本中添加图片子组件。

void setText6(ArkUI\_NodeHandle &text6)
{
    // ImageSpan
    ArkUI\_NodeHandle imageSpan = Manager::nodeAPI\_->createNode(ARKUI\_NODE\_IMAGE\_SPAN);
    ArkUI\_AttributeItem spanUrl = {.string = "/resources/base/media/background.png"};
    ArkUI\_NumberValue widthVal\[VALUE\_1\]{};
    widthVal\[VALUE\_0\].f32 = 100.f;
    ArkUI\_AttributeItem width = {.value = widthVal, .size = VALUE\_1};
    ArkUI\_NumberValue heightVal\[VALUE\_1\]{};
    heightVal\[VALUE\_0\].f32 = 100.f;
    ArkUI\_AttributeItem height = {.value = heightVal, .size = VALUE\_1};
    Manager::nodeAPI\_->setAttribute(imageSpan, NODE\_WIDTH, &width);
    Manager::nodeAPI\_->setAttribute(imageSpan, NODE\_HEIGHT, &height);
    Manager::nodeAPI\_->setAttribute(imageSpan, NODE\_IMAGE\_SPAN\_SRC, &spanUrl);
    // 设置 NODE\_IMAGE\_SPAN\_VERTICAL\_ALIGNMENT
    ArkUI\_NumberValue verticalAlignment = {.i32 = ARKUI\_IMAGE\_SPAN\_ALIGNMENT\_BOTTOM};
    ArkUI\_AttributeItem verticalAlignmentItem = {&verticalAlignment, VALUE\_1};
    Manager::nodeAPI\_->setAttribute(imageSpan, NODE\_IMAGE\_SPAN\_VERTICAL\_ALIGNMENT, &verticalAlignmentItem);
    // imageSpan组件占位图地址属性
    ArkUI\_AttributeItem spanAlt = {.string = "/resources/base/media/startIcon.png"};
    Manager::nodeAPI\_->setAttribute(imageSpan, NODE\_IMAGE\_SPAN\_ALT, &spanAlt);
    // 设置imageSpan组件的基线偏移量属性
    ArkUI\_NumberValue baselineOffset = {.f32 = VALUE\_10};
    ArkUI\_AttributeItem baselineOffsetItem = {&baselineOffset, VALUE\_1};
    Manager::nodeAPI\_->setAttribute(imageSpan, NODE\_IMAGE\_SPAN\_BASELINE\_OFFSET, &baselineOffsetItem);
    Manager::nodeAPI\_->addChild(text6, imageSpan);
}

#### \[h2\]使用StyledString

StyledString提供了更高级的文本排版功能，支持为文本的不同部分设置不同样式，包括字体大小、颜色、占位符等。关于StyledString的详细使用方法，请参考[使用属性字符串](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ndk-styled-string)文档。

#### 设置高级文本效果

Text组件支持多种高级文本效果，如渐变、跑马灯等。

#### \[h2\]设置渐变效果

通过如下属性设置渐变颜色效果。从API version 20开始，Text组件支持设置渐变颜色效果。

**表9** 渐变效果属性

| 属性 | 说明 |
| :-- | :-- |
| [NODE\_TEXT\_LINEAR\_GRADIENT](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_linear_gradient) | 设置线性渐变。从API version 20开始支持。 |
| [NODE\_TEXT\_RADIAL\_GRADIENT](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_radial_gradient) | 设置径向渐变。从API version 20开始支持。 |

// 设置渐变颜色和位置
float stops\[\] = { 0.0f, 0.5f };
uint32\_t colors\[\] = { 0xFFFFFF00, 0xFF0000FF };
ArkUI\_ColorStop colorStop = { colors, stops, VALUE\_2 };
ArkUI\_ColorStop \*colorStopPtr = &colorStop;

// 设置线性渐变
ArkUI\_NumberValue linearGradient\[\] = {
    {.f32 = FLOAT\_50}, {.f32 = FLOAT\_50}, {.f32 = FLOAT\_50}};
ArkUI\_AttributeItem linearGradientItem = {
    linearGradient, sizeof(linearGradient) / sizeof(ArkUI\_NumberValue)};
linearGradientItem.object = reinterpret\_cast<void \*>(colorStopPtr);
Manager::nodeAPI\_->setAttribute(text5, NODE\_TEXT\_LINEAR\_GRADIENT, &linearGradientItem);

#### \[h2\]设置跑马灯效果

从API version 23开始，Text组件支持通过[NODE\_TEXT\_MARQUEE\_OPTIONS](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_marquee_options)属性设置跑马灯效果。

// 创建跑马灯选项
ArkUI\_TextMarqueeOptions\* marqueeOptions = OH\_ArkUI\_TextMarqueeOptions\_Create();
OH\_ArkUI\_TextMarqueeOptions\_SetStart(marqueeOptions, true);
OH\_ArkUI\_TextMarqueeOptions\_SetStep(marqueeOptions, 5.0f);
OH\_ArkUI\_TextMarqueeOptions\_SetSpacing(marqueeOptions, 30.0f);
OH\_ArkUI\_TextMarqueeOptions\_SetFromStart(marqueeOptions, true);
OH\_ArkUI\_TextMarqueeOptions\_SetDelay(marqueeOptions, VALUE\_400);
OH\_ArkUI\_TextMarqueeOptions\_SetUpdatePolicy(marqueeOptions,
    ArkUI\_MarqueeUpdatePolicy::ARKUI\_MARQUEEUPDATEPOLICY\_PRESERVEPOSITION);
// 设置到Text组件
ArkUI\_AttributeItem marqueeOptions\_item = {
    .object = marqueeOptions
};
Manager::nodeAPI\_->setAttribute(text18, NODE\_TEXT\_MARQUEE\_OPTIONS, &marqueeOptions\_item);
OH\_ArkUI\_TextMarqueeOptions\_Dispose(marqueeOptions);

#### \[h2\]设置文本方向

从API version 23开始，Text组件支持通过[NODE\_TEXT\_DIRECTION](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-native-node-h-nodeattributetype-text#node_text_direction)属性设置文本方向。

// 设置文本方向为从右到左
ArkUI\_NumberValue directionValue\[\] = {{.i32 = ARKUI\_TEXT\_DIRECTION\_RTL}};
ArkUI\_AttributeItem direction\_item = {directionValue, sizeof(directionValue) / sizeof(ArkUI\_NumberValue)};
Manager::nodeAPI\_->setAttribute(text19, NODE\_TEXT\_DIRECTION, &direction\_item);