ArkTS组件Navigation

 Navigation

1.Navigation

Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,其内部默认包含了标题栏、内容区和工具栏,其中内容区默认首页显示导航内容(Navigation的子组件)或非首页显示(NavDestination的子组件),首页和非首页通过路由进行切换。

(1)Navigation接口

Navigation(pathInfos: NavPathStack):绑定路由栈到Navigation组件。

参数名类型必填说明
pathInfosNavPathStack路由栈信息。
(2)Navigation所有属性
1. title属性:设置页面标题
参数名类型必填说明
value

ResourceStr10+ | CustomBuilder |

 NavigationCommonTitle9+ | 

NavigationCustomTitle9+

页面标题,使用NavigationCustomTitle类型设置height高度时,titleMode属性不会生效。字符串超长时,如果不设置副标题,先缩小再换行(2行)最后...截断。如果设置副标题,先缩小最后...截断。
optionsNavigationTitleOptions标题栏选项

NavigationCommonTitle
名称类型必填说明
mainstring设置主标题。
substring设置副标题。
NavigationCustomTitle
名称类型必填说明
builderCustomBuilder设置标题栏内容。
heightTitleHeight | Length设置标题栏高度。

2. Menus属性:设置页面右上角菜单

不支持通过SymbolGlyphModifier对象的fontSize属性修改图标大小、effectStrategy属性修改动效、symbolEffect属性修改动效类型。

设置页面右上角菜单。不设置时不显示菜单项。使用Array<NavigationMenuItem> 写法时,竖屏最多支持显示3个图标,横屏最多支持显示5个图标,多余的图标会被放入自动生成的更多图标。

参数名类型必填说明
valueArray<NavigationMenuItem> | CustomBuilder页面右上角菜单。
3.titleMode属性:设置页面标题栏显示模式
参数名类型必填说明
valueNavigationTitleMode

页面标题栏显示模式。

默认值:NavigationTitleMode.Free

NavigationTitleMode枚举说明
名称说明
Free

当内容为满一屏的可滚动组件时,标题随着内容向上滚动而缩小(子标题的大小不变、淡出)。向下滚动内容到顶时则恢复原样。

说明:

标题随着内容滚动大小联动的动效在title设置为ResourceStr和NavigationCommonTitle时生效,设置成其余自定义节点类型时字体样式无法变化,下拉时只影响标题栏偏移。

可滚动组件不满一屏时,如果想使用联动效果,就要使用滚动组件提供的edgeEffect接口将options参数设置为true。未滚动状态,标题栏高度与Full模式一致;滚动时,标题栏的最小高度与Mini模式一致。

Mini

固定为小标题模式。

默认值:API version 12之前,只有主标题时,标题栏高度为56vp;同时有主标题和副标题时,标题栏高度为82vp。从API version 12开始,该模式下标题栏高度为56vp。

Full

固定为大标题模式。

默认值:只有主标题时,标题栏高度为112vp;同时有主标题和副标题时,标题栏高度为138vp。

4.toolbarConfiguration属性:设置工具栏内容,不设置时不显示工具栏

不支持通过SymbolGlyphModifier对象的fontSize属性修改图标大小、effectStrategy属性修改动效、symbolEffect属性修改动效类型。

参数名类型必填说明
valueArray<ToolbarItem> | CustomBuilder

工具栏内容,使用Array<ToolbarItem>写法设置的工具栏有如下特性:

工具栏所有选项均分底部工具栏,在每个均分内容区布局文本和图标。

文本超长时,若工具栏选项个数小于5个,优先拓展选项的宽度,最大宽度与屏幕等宽,其次逐级缩小,缩小之后换行,最后...截断。

竖屏最多支持显示5个图标,多余的图标会被放入自动生成的更多图标。横屏时,如果为Split模式,仍按照竖屏规则显示,如果为Stack模式需配合menus属性的Array<NavigationMenuItem>使用,底部工具栏会自动隐藏,同时底部工具栏所有选项移动至页面右上角菜单。

使用CustomBuilder写法为用户自定义工具栏选项,除均分底部工具栏外不具备以上功能。

optionsNavigationToolbarOptions1工具栏选项。
5.hideToolBar属性:设置是否隐藏工具栏
参数名类型必填说明
valueBoolean

是否隐藏工具栏。

默认值:false

true: 隐藏工具栏。

false: 显示工具栏。

6.hideTitleBar属性:设置是否隐藏标题栏
参数名类型必填说明
valueBoolean

是否隐藏标题栏。

默认值:false

true: 隐藏标题栏。

false: 显示标题栏。

7.hideBackButton属性:设置是否隐藏标题栏中的返回键。

返回键仅针对titleMode为NavigationTitleMode.Mini时才生效。

参数名类型必填说明
valueBoolean

是否隐藏标题栏中的返回键。

默认值:false

true: 隐藏返回键。

false: 显示返回键。

8.navBarWidth:设置导航栏宽度

仅在Navigation组件分栏时生效。

参数名类型必填说明
valueLength

导航栏宽度。

默认值:240

单位:vp

undefined:行为不做处理,导航栏宽度与默认值保持一致。

9.navBarPosition:设置导航栏位置

仅在Navigation组件分栏时生效。

参数名类型必填说明
valueNavBarPosition

导航栏位置。

默认值:NavBarPosition.Start

NavBarPosition枚举说明
名称说明
Start双栏显示时,主列在主轴方向首部。
End双栏显示时,主列在主轴方向尾部。
10.mode:设置导航栏的显示模式。

支持Stack、Split与Auto模式。

参数名类型必填说明
valueNavigationMode

导航栏的显示模式。

默认值:NavigationMode.Auto

自适应:基于组件宽度自适应单栏和双栏。

NavigationMode枚举说明
名称说明
Stack导航栏与内容区独立显示,相当于两个页面。
Split

导航栏与内容区分两栏显示。

以下navBarWidthRange的值用[minNavBarWidth,maxNavBarWidth]表示

1.当navBarWidth属性的值,在navBarWidthRange属性的值范围以外时,navBarWidth按如下规则显示:

navBarWidth < minNavBarWidth时,navBarWidth修正为minNavBarWidth;

navBarWidth > maxNavBarWidth,且组件宽度 - minContentWidth - 分割线宽度(1vp) > maxNavBarWidth时,navBarWidth修正为maxNavBarWidth;

navBarWidth > maxNavBarWidth,且组件宽度 - minContentWidth - 分割线宽度(1vp) < minNavBarWidth时,navBarWidth修正为minNavBarWidth;

navBarWidth > maxNavBarWidth,且组件宽度 - minContentWidth - 分割线宽度(1vp)在navBarWidthRange范围内,navBarWidth修正为组件宽度 - 分割线宽度(1vp) - minContentWidth。

2.当navBarWidth属性的值,在navBarWidthRange属性的值范围以内时,navBarWidth按如下规则显示:

minNavBarWidth + minContentWidth + 分割线宽度(1vp) >= 组件宽度时,navBarWidth修正为minNavBarWidth;

minNavBarWidth + minContentWidth + 分割线宽度(1vp) < 组件宽度,且navBarWidth + minContentWidth + 分割线宽度(1vp) >= 组件宽度时,navBarWidth修正为组件宽度 - 分割线宽度(1vp) - minContentWidth;

minNavBarWidth + minContentWidth + 分割线宽度(1vp) < 组件宽度,且navBarWidth + minContentWidth + 分割线宽度(1vp) < 组件宽度时,navBarWidth为设置的值。

3.缩小组件尺寸时,先缩小内容区的尺寸至minContentWidth,然后再缩小导航栏的尺寸至minNavBarWidth。若继续缩小,先缩小内容区,内容区消失后再缩小导航栏。

4.设置导航栏为固定尺寸时,若持续缩小组件尺寸,导航栏最后压缩显示。

5.若只设置了navBarWidth属性,则导航栏宽度为navBarWidth,且分割线不可拖动。

Auto

API version 9之前:窗口宽度>=520vp时,采用Split模式显示;窗口宽度<520vp时,采用Stack模式显示。

API version 10及以上:窗口宽度>=600vp时,采用Split模式显示;窗口宽度<600vp时,采用Stack模式显示,600vp等于minNavBarWidth(240vp) + minContentWidth (360vp)。

11.backButtonIcon:设置标题栏中返回键图标

不支持通过SymbolGlyphModifier对象的fontSize属性修改图标大小、effectStrategy属性修改动效、symbolEffect属性修改动效类型。

参数名类型必填说明
valuestring | PixelMap | Resource | SymbolGlyphModifier12+标题栏中返回键图标。
12.hideNavBar:设置是否隐藏导航栏

设置是否隐藏导航栏。设置为true时,隐藏Navigation的导航栏,包括标题栏、内容区和工具栏。如果此时路由栈中存在NavDestination页面,则直接显示栈顶NavDestination页面,反之显示空白。

参数名类型必填说明
valueboolean

是否隐藏导航栏。

默认值:false

13.navDestination属性:创建NavDestination组件

创建NavDestination组件。使用builder函数,基于name和param构造NavDestination组件。builder下只能有一个根节点。builder中允许在NavDestination组件外包含一层自定义组件, 但自定义组件不允许设置属性和事件,否则仅显示空白。

参数名类型必填说明
builder(name: string, param: unknown) => void创建NavDestination组件。name:NavDestination页面名称。param:Navdestination页面详细参数。
14.navBarWidthRange:设置导航栏最小和最大宽度(双栏模式下生效)。
参数名类型必填说明
value[DimensionDimension]

导航栏最小和最大宽度。

默认值:最小默认值 240,最大默认值为组件宽度的40% ,且不大于 432,如果只设置一个值,则未设置的值按照默认值计算。

单位:vp

15.minContentWidth:设置导航栏内容区最小宽度(双栏模式下生效)
参数名类型必填说明
valueDimension

导航栏内容区最小宽度。

默认值:360

单位:vp

undefined:行为不做处理,导航栏内容区最小宽度与默认值保持一致。

Auto模式断点计算:默认600vp,minNavBarWidth(240vp) + minContentWidth (360vp)

  1. 仅设置navBarWidth,不支持Navigation分割线拖拽。

  2. navBarWidthRange指定分割线可以拖拽范围。如果不设置值,则按照默认值处理。拖拽范围需要满足navBarWidthRange设置的范围和minContentWidth限制。

  3. Navigation显示范围缩小:a. 缩小内容区大小。如果不设置minContentWidth属性,则可以缩小内容区至0, 否则最小缩小至minContentWidth。b. 缩小导航栏大小,缩小时需要满足导航栏宽度大于navBarRange的下限。c. 对显示内容进行裁切。

16.ignoreLayoutSafeArea:控制组件的布局,使其扩展到非安全区域
参数名类型必填说明
typesArray <LayoutSafeAreaType>

配置扩展安全区域的类型。

默认值:

[LayoutSafeAreaType.SYSTEM]

edgesArray <LayoutSafeAreaEdge>

配置扩展安全区域的方向。

默认值:

[LayoutSafeAreaEdge.TOP, LayoutSafeAreaEdge.BOTTOM]。

组件设置LayoutSafeArea之后生效的条件为:

设置LayoutSafeAreaType.SYSTEM时,组件的边界与非安全区域重合时组件能够延伸到非安全区域下。例如:设备顶部状态栏高度100,组件在屏幕中纵向方位的绝对偏移需要在0到100之间。

若组件延伸到非安全区域内,此时在非安全区域里触发的事件(例如:点击事件)等可能会被系统拦截,优先响应状态栏等系统组件。

17.systemBarStyle:当Navigation中显示Navigation首页时,设置对应系统状态栏的样式。
参数名类型必填说明
styleOptional<SystemBarStyle>系统状态栏样式
  1. 不建议混合使用systemBarStyle属性和window设置状态栏样式的相关接口,例如:setWindowSystemBarProperties
  2. 初次设置Navigation/NavDestination的systemBarStyle属性时,会备份当前状态栏样式用于后续的恢复场景。
  3. Navigation总是以首页(页面栈内没有NavDestination时)或者栈顶NavDestination设置的状态栏样式为准。
  4. Navigation首页或者任何栈顶NavDestination页面,如果设置了有效的systemBarStyle,则会使用设置的样式,反之如果之前已经备份了样式,则使用备份的样式,否则不做任何处理。
  5. Split模式下的Navigation,如果内容区没有NavDestination,则遵从Navigation首页的设置,反之则遵从栈顶NavDestination的设置。
  6. 仅支持在主窗口的主页面中使用systemBarStyle设置状态栏样式。
  7. 仅当Navigation占满整个页面时,设置的样式才会生效,当Navigation没有占满整个页面时,如果有备份的样式,则恢复备份的样式。
  8. 当页面设置不同样式时,在页面转场开始时生效。
  9. 非全屏窗口下,Navigation/NavDestination设置的状态栏不生效。
(3)Navigation事件
1.onTitleModeChange

titleMode为NavigationTitleMode.Free时,随着可滚动组件的滑动标题栏模式发生变化时触发此回调。

参数名类型必填说明
titleModeNavigationTitleMode标题模式。
2.onNavBarStateChange

导航栏显示状态切换时触发该回调。

参数名类型必填说明
isVisiblebooleanisVisible为true时表示显示,为false时表示隐藏。
3.onNavigationModeChange

当Navigation首次显示或者单双栏状态发生变化时触发该回调。

参数名类型必填说明
modeNavigationMode

NavigationMode.Split: 当前Navigation显示为双栏;

NavigationMode.Stack: 当前Navigation显示为单栏。

4.customNavContentTransition

自定义转场动画回调。

参数名类型必填说明
fromNavContentInfo退场Destination的页面。
toNavContentInfo进场Destination的页面。
operationNavigationOperation转场类型。

返回值:

类型说明
NavigationAnimatedTransition | undefined

自定义转场动画协议。

undefined: 返回未定义,执行默认转场动效。

5.NavPathStack

Navigation路由栈,允许被继承。开发者可以在派生类中新增属性方法,也可以重写基类NavPathStack的方法。派生类对象可以替代基类NavPathStack对象使用。

6.pushPath

将info指定的NavDestination页面信息入栈,具体根据options中指定不同的LaunchMode,有不同的行为

参数名类型必填说明
infoNavPathInfoNavDestination页面的信息。
optionsNavigationOptions页面栈操作选项。
7.pushPathByName

将name指定的NavDestination页面信息入栈,传递的数据为param,添加onPop回调接收入栈页面出栈时的返回结果,并进行处理。

参数名类型必填说明
namestringNavDestination页面名称。
paramObjectNavDestination页面详细参数。
onPopCallback<PopInfo>Callback回调,用于页面出栈时触发该回调处理返回结果。仅pop中设置result参数后触发。
animatedboolean是否支持转场动画,默认值:true。
8.pushDestination

将info指定的NavDestination页面信息入栈,使用Promise异步回调返回接口调用结果,具体根据options中指定不同的LaunchMode,有不同的行为。

参数:

参数名类型必填说明
infoNavPathInfoNavDestination页面的信息。
optionsNavigationOptions页面栈操作选项。

返回值:

类型说明
Promise<void>异常返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.router(页面路由)错误码。

错误码ID错误信息
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.
100001Internal error.
100005Builder function not registered.
100006NavDestination not found.
9.pushDestinationByName

将name指定的NavDestination页面信息入栈,传递的数据为param,并且添加用于页面出栈时处理返回结果的OnPop回调,使用Promise异步回调返回接口调用结果。

参数:

参数名类型必填说明
namestringNavDestination页面名称。
paramObjectNavDestination页面详细参数。
onPopCallback<PopInfo>Callback回调,用于页面出栈时处理返回结果。仅pop中设置result参数后触发。
animatedboolean是否支持转场动画,默认值:true。

返回值:

类型说明
Promise<void>异常返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.router(页面路由)错误码。

错误码ID错误信息
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.
100001Internal error.
100005Builder function not registered.
100006NavDestination not found.
10.replacePath

替换页面栈操作,具体根据options中指定不同的LaunchMode,有不同的行为

参数名类型必填说明
infoNavPathInfo新栈顶页面参数信息。
optionsNavigationOptions页面栈操作选项。
11.replacePathByName

将当前页面栈栈顶退出,将name指定的页面入栈。

参数:

参数名类型必填说明
namestringNavDestination页面名称。
paramObjectNavDestination页面详细参数。
animated11+boolean是否支持转场动画,默认值:true。
12.removeByIndexes

将页面栈内索引值在indexes中的NavDestination页面删除。

参数:

参数名类型必填说明
indexesArray<number>待删除NavDestination页面的索引值数组。

返回值:

类型说明
number返回删除的NavDestination页面数量。
13.removeByName

将页面栈内指定name的NavDestination页面删除。

参数:

参数名类型必填说明
namestring删除的NavDestination页面的名字。

返回值:

类型说明
number返回删除的NavDestination页面数量。
14.removeByNavDestinationId

将页面栈内指定navDestinationId的NavDestination页面删除。navDestinationId可以在NavDestination的onReady回调中获取,也可以在NavDestinationInfo中获取。

参数:

参数名类型必填说明
navDestinationIdstring删除的NavDestination页面的唯一标识符navDestinationId。

返回值:

类型说明
boolean返回是否成功删除该页面,true为删除成功。
15.pop

弹出路由栈栈顶元素,并触发onPop回调传入页面处理结果。

参数:

参数名类型必填说明
resultObject页面自定义处理结果。不支持boolean类型。
animatedboolean是否支持转场动画,默认值:true。

返回值:

类型说明
NavPathInfo返回栈顶NavDestination页面的信息。
undefined当路由栈为空时返回undefined。
16.popToName

回退路由栈到由栈底开始第一个名为name的NavDestination页面,并触发onPop回调传入页面处理结果。

参数:

参数名类型必填说明
namestringNavDestination页面名称。
resultObject页面自定义处理结果。不支持boolean类型。
animatedboolean是否支持转场动画,默认值:true。

返回值:

类型说明
number如果栈中存在名为name的NavDestination页面,则返回由栈底开始第一个名为name的NavDestination页面的索引,否则返回-1。
17.popToIndex

回退路由栈到index指定的NavDestination页面,并触发onPop回调传入页面处理结果。

参数:

参数名类型必填说明
indexnumberNavDestination页面的位置索引。
resultObject页面自定义处理结果。不支持boolean类型。
animatedboolean是否支持转场动画,默认值:true。
18.moveToTop

将由栈底开始第一个名为name的NavDestination页面移到栈顶。

参数:

参数名类型必填说明
namestringNavDestination页面名称。
animated11+boolean是否支持转场动画,默认值:true。

返回值:

类型说明
number如果栈中存在名为name的NavDestination页面,则返回由栈底开始第一个名为name的NavDestination页面的当前索引,否则返回-1。
19.moveIndexToTop

将index指定的NavDestination页面移到栈顶。

参数:

参数名类型必填说明
indexnumberNavDestination页面的位置索引。
animated11+boolean是否支持转场动画,默认值:true。
20.clear

清除栈中所有页面。

参数:

参数名类型必填说明
animated11+boolean是否支持转场动画,默认值:true。
21.getAllPathName

获取栈中所有NavDestination页面的名称。

返回值:

类型说明
Array<string>返回栈中所有NavDestination页面的名称。
22.getParamByIndex

获取index指定的NavDestination页面的参数信息。

参数:

参数名类型必填说明
indexnumberNavDestination页面的位置索引。

返回值:

类型说明
unknown返回对应NavDestination页面的参数信息。
undefined传入index无效时返回undefined。
23.getParamByName

获取全部名为name的NavDestination页面的参数信息。

参数:

参数名类型必填说明
namestringNavDestination页面名称。

返回值:

类型说明
Array<unknown>返回全部名为name的NavDestination页面的参数信息。
24.getIndexByName

获取全部名为name的NavDestination页面的位置索引。

参数:

参数名类型必填说明
namestringNavDestination页面名称。

返回值:

类型说明
Array<number>返回全部名为name的NavDestination页面的位置索引。
25.size

获取栈大小。

返回值:

类型说明
number返回栈大小。
26.disableAnimation

参数:

参数名类型必填说明
valueboolean是否关闭转场动画,默认值:false。
27.getParent

获取父NavPathStack

返回值:

类型说明
NavPathStack | null如果当前NavPathStack所属Navigation的外层有另外的一层Navigation,则能够获取到外层Navigation的NavPathStack。否则获取不到NavPathStack,返回null。
28.setInterception

设置Navigation页面跳转拦截回调。

参数:

参数名类型必填说明
interceptionNavigationInterception设置Navigation跳转拦截对象。
29.NavPathInfo

路由页面信息。

30.constructor

constructor(name: string, param: unknown, onPop?: Callback<PopInfo>, isEntry?: boolean)

参数名类型必填说明
namestringNavDestination页面名称。
paramunknownNavDestination页面详细参数。
onPop11+Callback<PopInfo>NavDestination页面触发pop时返回的回调。
isEntry12+boolean

标记NavDestination是否为入口页面。

默认值:false

标记清理时机:1、在当前navDestination页面触发一次全局back事件。2、应用退至后台。

说明

入口NavDestination不响应应用内的全局back事件,直接触发应用间的全局back事件

31.PopInfo

下一个页面返回的回调信息载体。

名称类型必填说明
infoNavPathInfo页面触发返回时的当前页面信息,系统自动获取填入,无需开发者传入。
resultObject页面触发返回时的结果,开发者自定义对象。
32.NavContentInfo

跳转Destination信息

名称类型必填说明
namestringNavDestination名称,如果为根视图(NavBar),则返回值为undefined。
indexnumberNavDestination在NavPathStack中的序号, 如果为根视图(NavBar),则返回值为 -1。
modeNavDestinationModeNavDestination的模式,如果是根视图(NavBar),则返回值为undefined。
param12+ObjectNavDestination页面加载的参数。
navDestinationId12+stringNavDestination的唯一标识符。
33.NavigationAnimatedTransition

自定义转场动画协议,开发者需实现该协议来定义Navigation路由跳转的跳转动画。

名称类型必填说明
timeoutnumber

动画超时结束时间。

单位:ms。

默认值:可交互动画无默认值,不可交互动画默认超时时间为1000ms。

transition(transitionProxy : NavigationTransitionProxy) => void

自定义转场动画执行回调。

transitionProxy: 自定义转场动画代理对象。

onTransitionEnd(success: boolean) => void

转场完成回调。

success: 转场是否成功。

isInteractive12+boolean

本次转场动画是否为可交互转场。

默认值:false。

34.NavigationTransitionProxy 

自定义转场动画代理对象

名称类型必填说明
fromNavContentInfo退场页面信息。
toNavContentInfo进场页面信息。
isInteractive12+boolean是否为可交互转场动画。
35.finishTransition

结束本次自定义转场动画,开发者需要主动触发该方法来结束本次转场,否则系统会在timeout的时间后结束本次转场。

36.cancelTransition

取消本次交互转场,恢复到页面跳转前的页面栈(不支持取消不可交互转场动画)。

37.updateTransition

更新交互转场动画进度(不可交互动画不支持动画进度设置)。

参数:

参数名类型必填说明
progressnumber设置交互转场动画进度百分比。取值范围 0-1。
38.NavigationInterception

Navigation跳转拦截对象。

名称类型必填说明
willShowInterceptionShowCallback页面跳转前拦截,允许操作栈,在当前跳转中生效。
didShowInterceptionShowCallback页面跳转后回调。在该回调中操作栈在下一次跳转中刷新。
modeChangeInterceptionModeCallbackNavigation单双栏显示状态发生变更时触发该回调。
39.InterceptionShowCallback

navigation页面跳转前和页面跳转后的拦截回调

参数名类型必填说明
fromNavDestinationContext |NavBar页面跳转之前的栈顶页面信息。参数值为navBar,则表示跳转前的页面为Navigation首页。
toNavDestinationContext |NavBar页面跳转之后的栈顶页面信息。参数值为navBar,则表示跳转的目标页面为Navigation首页。
operationNavigationOperation当前页面跳转类型。
isAnimatedboolean页面跳转是否有动画。
40.InterceptionModeCallback

navigation单双栏显示状态发生变更时的拦截回调。

参数名类型必填说明
modeNavigationMode导航栏的显示模式。
41.NavBar

Navigation首页名字

类型说明
'navBar'Navigation首页。
42.NavigationMenuItem
名称类型必填说明
valuestring

API Version 9: 显示菜单栏单个选项的文本。

API Version 10: 不显示菜单栏单个选项的文本。

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

iconstring

菜单栏单个选项的图标资源路径。

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

isEnabled12+boolean

使能状态,默认使能(false未使能,true使能)。

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

action() => void

当前选项被选中的事件回调。

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

symbolIcon12+SymbolGlyphModifier

菜单栏单个选项的symbol资源(优先级高于icon)。

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

43.ToolbarItem
名称类型必填说明
valueResourceStr工具栏单个选项的显示文本。
iconResourceStr工具栏单个选项的图标资源路径。
action() => void当前选项被选中的事件回调。
statusToolbarItemStatus

工具栏单个选项的状态。

默认值:ToolbarItemStatus.NORMAL

activeIconResourceStr工具栏单个选项处于ACTIVE态时的图标资源路径。
symbolIcon12+SymbolGlyphModifier

工具栏单个选项的symbol资源(优先级高于icon)。

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

activeSymbolIcon12+SymbolGlyphModifier

工具栏单个选项处于ACTIVE态时的symbol资源(优先级高于activeIcon)。

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

 ToolbarItemStatus枚举说明
名称说明
NORMAL设置工具栏单个选项为NORMAL态,该选项显示默认样式,可以触发Hover,Press,Focus事件并显示对应的多态样式。
DISABLED设置工具栏单个选项为DISABLED态, 该选项显示DISABLED态样式,并且不可交互。
ACTIVE设置工具栏单个选项为ACTIVE态, 该选项通过点击事件可以将icon图标更新为activeIcon对应的图片资源。
44.NavigationOperation枚举说明
名称说明
PUSH本次转场为页面进场。
POP本次转场为页面退场。
REPLACE本次转场为页面替换。
45.BarStyle枚举说明
名称说明
STANDARD标题栏与内容区采用上下布局。
STACK标题栏与内容区采用层叠布局,标题栏布局在内容区上层。
46.NavigationTitleOptions
名称类型必填说明
backgroundColorResourceColor

标题栏背景颜色,不设置时为系统默认颜色。

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

backgroundBlurStyleBlurStyle

标题栏背景模糊样式,不设置时关闭背景模糊效果。

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

barStyle12+BarStyle

标题栏布局方式设置。

默认值:BarStyle.STANDARD

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

paddingStart12+LengthMetrics

标题栏起始端内间距。

仅支持以下任一场景:

1. 显示返回图标,即hideBackButton为false;

2. 使用非自定义标题,即标题value类型为ResourceStr或NavigationCommonTitle。

默认值:

LengthMetrics.resource($r('sys.float.margin_left'))。

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

paddingEnd12+LengthMetrics

标题栏结束端内间距。

仅支持以下任一场景:

1. 使用非自定义菜单,即菜单value为Array<NavigationMenuItem>;

2. 没有右上角菜单,且使用非自定义标题,即标题value类型为ResourceStr或NavigationCommonTitle。

默认值:

LengthMetrics.resource($r('sys.float.margin_right'))。

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

mainTitleModifier13+TextModifier

主标题属性修改器。

有如下几点使用规则:

1. 通过Modifier设置的属性会覆盖系统默认的属性(如果Modifier设置了fontSize, maxFontSize, minFontSize任一属性,则系统设置的大小相关属性不生效,以开发者的设置为准);

2. 不设该属性或者设置了异常值,则恢复系统默认设置;

3. Free模式下设置字体大小时,原有滑动改变标题大小的效果失效。

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

subTitleModifier13+TextModifier

子标题属性修改器。

有如下几点使用规则:

1. 通过Modifier设置的属性会覆盖系统默认的属性(如果Modifier设置了fontSize, maxFontSize, minFontSize任一属性,则系统设置的大小相关属性不生效,以开发者的设置为准);

2. 不设该属性或者设置了异常值,则恢复系统默认设置。

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

47.NavigationToolbarOptions
名称类型必填说明
backgroundColorResourceColor工具栏背景颜色,不设置时为系统默认颜色。
backgroundBlurStyleBlurStyle工具栏背景模糊样式,不设置时关闭背景模糊效果。
48.LaunchMode枚举说明
名称说明
STANDARD

系统默认的栈操作模式。

push操作会将指定的NavDestination入栈;replace操作会将当前栈顶NavDestination替换。

MOVE_TO_TOP_SINGLETON从栈底向栈顶查找,如果指定的名称已经存在,则将对应的NavDestination页面移到栈顶(replace操作会将最后的栈顶替换成指定的NavDestination),否则行为和STANDARD一致。
POP_TO_SINGLETON从栈底向栈顶查找,如果指定的名称已经存在,则将其上方的NavDestination页面全部移除(replace操作会将最后的栈顶替换成指定的NavDestination),否则行为和STANDARD一致。
NEW_INSTANCE创建新的NavDestination实例。与STANDARD模式相比,该方法不会复用栈中同名实例。
49.NavigationOptions
名称类型必填说明
launchModeLaunchMode

页面栈的操作模式。

默认值:LaunchMode.STANDARD

animatedboolean

是否支持转场动画。

默认值:true。

2.NavRouter

导航组件,默认提供点击响应处理,不需要开发者自定义点击事件逻辑。

子组件

必须包含两个子组件,其中第二个子组件必须为NavDestination

子组件个数异常时:

  1. 有且仅有1个时,触发路由到NavDestination的能力失效。
  2. 有且仅有1个时,且使用NavDestination场景下,不进行路由。
  3. 大于2个时,后续的子组件不显示。
  4. 第二个子组件不为NavDestination时,触发路由功能失效。
(1)NavRouter所有属性
1.mode属性:设置指定点击NavRouter跳转到NavDestination页面时,使用的路由模式。

参数:

参数名类型必填说明
modeNavRouteMode

指定点击NavRouter跳转到NavDestination页面时,使用的路由模式。

默认值:NavRouteMode.PUSH_WITH_RECREATE

 NavRouteMode枚举类型说明
名称说明
PUSH_WITH_RECREATE跳转到新的NavDestination页面时,替换当前显示的NavDestination页面,页面销毁,但该页面信息仍保留在路由栈中。
PUSH跳转到新的NavDestination页面时,覆盖当前显示的NavDestination页面,该页面不销毁,且页面信息保留在路由栈中。
REPLACE跳转到新的NavDestination页面时,替换当前显示的NavDestination页面,页面销毁,且该页面信息从路由栈中清除。
2.RouteInfo对象说明
名称类型必填说明
namestring点击NavRouter跳转到的NavDestination页面的名称。
paramunknown点击NavRouter跳转到NavDestination页面时,传递的参数。
 (2)事件
onStateChange

组件激活状态切换时触发该回调。开发者点击激活NavRouter,加载对应的NavDestination子组件时,回调onStateChange(true)。NavRouter对应的NavDestination子组件不再显示时,回调onStateChange(false)。

参数:

参数名类型必填说明
isActivatedbooleanisActivated为true时表示激活,为false时表示未激活。

3.NavDestination

作为子页面的根容器,用于显示Navigation的内容区。

NavDestination组件必须配合Navigation使用,作为Navigation目的页面的根节点,单独使用只能作为普通容器组件,不具备路由相关属性能力。

如果页面栈中间页面的生命周期发生变化,跳转之前的栈顶Destination的生命周期(onWillshow,onShown,onHidden,onWillDisappear)与跳转之后的栈顶Destination的生命周期(onWillShow,onShown,onHidden,onWillDisappear)均在最后触发。

(1)子组件

子组件类型:系统组件和自定义组件,支持渲染控制类型(if/else、ForEach和LazyForEach)

子组件个数:多个

(2)NavDestination所有属性

不推荐设置位置、大小等布局相关属性,可能会造成页面显示异常

1.title

设置页面标题,使用NavigationCustomTitle类型设置height高度时,titleMode属性不会生效。字符串超长时,如果不设置副标题,先缩小再换2行后以...截断。如果设置副标题,先缩小后以...截断。

参数:

参数名类型必填说明
valuestring | CustomBuilder | NavDestinationCommonTitle | NavDestinationCustomTitle | Resource页面标题。
options12+NavigationTitleOptions标题栏选项。
 NavDestinationCommonTitle
名称类型必填说明
mainstring设置主标题。
substring设置副标题。
NavDestinationCustomTitle
名称类型必填说明
builderCustomBuilder设置标题栏内容。
heightTitleHeight | Length设置标题栏高度。
2.hideTitleBar

设置是否隐藏标题栏

参数:

参数名类型必填说明
valueboolean

是否隐藏标题栏。

默认值:false

true: 隐藏标题栏。

false: 显示标题栏。

3.mode

设置NavDestination类型,不支持动态修改

参数:

参数名类型必填说明
valueNavDestinationMode

NavDestination类型。

默认值: NavDestinationMode.STANDARD

NavDestinationMode枚举说明
名称说明
STANDARD标准模式的NavDestination。
DIALOG默认透明,进出页面栈不影响下层NavDestination的生命周期,不支持系统转场动画。
4.backButtinIcon

设置标题栏返回键图标

参数:

参数名类型必填说明
valueResourceStr | PixelMap | SymbolGlyphModifier12+标题栏返回键图标。
5.Menus

设置页面右上角菜单,不设置时不显示菜单项。使用Array<NavigationMenuItem>写法时,竖屏最多支持显示3个图标,横屏最多支持显示5个图标,多余的图标会被放入自动生成的更多图标

参数:

参数名类型必填说明
valueArray<NavigationMenuItem> | CustomBuilder页面右上角菜单。
6.ignoreLayoutSafeArea

控制组件的布局,使其扩展到非安全区域

参数名类型必填说明
typesArray <LayoutSafeAreaType>

配置扩展安全区域的类型。

默认值:

[LayoutSafeAreaType.SYSTEM]

edgesArray <LayoutSafeAreaEdge>

配置扩展安全区域的方向。

默认值:

[LayoutSafeAreaEdge.TOP, LayoutSafeAreaEdge.BOTTOM]。

组件设置LayoutSafeArea之后生效的条件为:

设置LayoutSafeAreaType.SYSTEM时,组件的边界与非安全区域重合时组件能够延伸到非安全区域下。例如:设备顶部状态栏高度100,组件在屏幕中纵向方位的绝对偏移需要在0到100之间。

若组件延伸到非安全区域内,此时在非安全区域里触发的事件(例如:点击事件)等可能会被系统拦截,优先响应状态栏等系统组件。

7.sysTemBarStyle

 当Navigation中显示当前NavDestination时,设置对应系统状态栏的样式

参数:

参数名类型必填说明
styleOptional<SystemBarStyle>系统状态栏样式。

说明:

1.必须配合Navigation使用,作为其Navigation目的页面的根节点时才能生效。

(3)NavDestination事件
事件名说明
onShown当该NavDestination页面显示时触发此回调
onHidden当该NavDestination页面隐藏时触发此回调
onWillAppear当该Destination挂载之前触发此回调,在该回调中允许修改页面栈,当前帧生效
onWillShow当该Destination显示之前触发此回调
onWillHide当该Destination隐藏之前触发此回调
onWillDisappear当该Destination卸载之前触发的生命周期(有转场动画时,在转场动画开始之前触发)
onBackPressed

当与Navigation绑定的页面栈中存在内容时,此回调生效。当点击返回键时,触发该回调

返回值为true时,表示重写返回键逻辑,返回值为false时,表示回退到上一个页面。

onReady当NavDestination即将构建子组件之前会触发此回调
(4)NavDestination接口
1.NavDestinationContext
名称类型必填说明
pathInfoNavPathInfo

跳转NavDestination时指定的参数。

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

pathStackNavPathStack

当前NavDestination所处的页面栈。

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

navDestinationId12+string

当前NavDestination的唯一ID,由系统自动生成,和组件通用属性id无关。

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

2.getConfigInRouteMap

返回值

类型说明
RouteMapConfig当前页面路由配置信息。
undefined当该页面不是通过路由表配置时返回undefined。
3.RouteMapConfig
名称类型必填说明
namestring页面名称。
pageSourceFilestring页面在当前包中的路径。
dataObject页面自定义字段信息。

十五. NodeContainer

基础组件,不支持尾随添加子节点。组件接受一个NodeController的实例接口。需要NodeController组合使用

说明:

该组件下仅支持挂载自定义节点FrameNode或者是BuilderNode中获取的根节点FrameNode。

不支持挂载查询获得的原生系统组件代理节点

当前不支持使用动态属性设置

不支持子组件

1.NodeContainer接口

参数:

参数名类型必填说明
controllerNodeControllerNodeController用于控制NodeContainer中的节点的上树和下树,反映NodeContainer容器的生命周期。

十六. PatternLock

图案密码锁组件,以九宫格图案的方式输入密码,用于密码验证场景。手指在PatternLock组件区域按下时开始进入输入状态,手指离开屏幕时结束输入状态完成密码输入。

1.接口

PatternLock(controller?: PatternLockController)

参数:

参数名类型必填说明
controllerPatternLockController设置PatternLock组件控制器,可用于控制组件状态重置。
2.属性
参数名类型必填说明
sideLengthLength组件的宽度和高度
circleRadiusLength设置宫格中圆点的半径。设置为0或负数时取默认值。
backgroundColorResourceColor背景颜色
regularColorResourceColor宫格圆点在“未选中”状态的填充颜色。
selectedColorResourceColor宫格圆点在“选中”状态的填充颜色。
activeColorResourceColor宫格圆点在“激活”状态的填充颜色。
pathColorResourceColor连线的颜色。
PathStrokeWidthnumber|string连线的宽度。
autoResetboolean

在完成密码输入后再次在组件区域按下时是否重置组件状态。

为true时,完成密码输入后再次在组件区域按下时会重置组件状态(即清除之前输入的密码);为false时,不会重置组件状态。

默认值:true

activateCircleStyleCircleStyleOptions宫格圆点在“激活”状态的背景圆环样式。

CirleStyleOptions对象

名称类型必填说明
colorResourceColor

背景圆环颜色。

默认值:与pathColor值相同

radiusLengthMetrics

背景圆环的半径。

默认值:circleRadius的11/6

enableWaveEffectboolean

波浪效果开关。

默认值:true

3.事件
(1)onPatternComplete

密码输入结束时触发该回调。

参数:

参数名类型必填说明
inputArray<number>与选中宫格圆点顺序一致的数字数组,数字为选中宫格圆点的索引值(第一行圆点从左往右依次为0、1、2,第二行圆点依次为3、4、5,第三行圆点依次为6、7、8)。
(2)onDotConnect

密码输入选中宫格圆点时触发该回调。

回调参数为选中宫格圆点顺序的数字,数字为选中宫格圆点的索引值(第一行圆点从左往右依次为0、1、2,第二行圆点依次为3、4、5,第三行圆点依次为6、7、8)。

1.PatternLockController

PatternLock组件的控制器,可以通过它进行组件状态重置。

导入对象
let patternLockController: PatternLockController = new PatternLockController()
2.constructor

constructor()

PatternLockController的构造函数。

3.reset

reset()

重置组件状态。

4.setChallengeResult

用于设置图案密码正确或错误状态。

名称类型必填说明
resultPatternLockChallengeResult图案密码状态。
PatternLockChallengeResult枚举说明
名称说明
CORRECT图案密码正确。
WRONG图案密码错误。
 
  1. @State onPattern:number[]=[]

  2. @State pwdMsg:string='请设置密码'

  3. patternLockController: PatternLockController = new PatternLockController() // 控制器

  4. acs:LengthMetrics=new LengthMetrics(10)

  5. @Builder PatternLockTest(){

  6. Text(this.pwdMsg).fontSize(30)

  7. Text(this.onPattern.toString())

  8. PatternLock(this.patternLockController)

  9. .sideLength('100%')

  10. .circleRadius(10) // 圆点半径

  11. .regularColor('#ccc') // 未选中的颜色

  12. .selectedColor('red') //选中的颜色

  13. .activeColor('blue') // 激活状态的颜色

  14. .pathColor('blue') // 连线的颜色

  15. .pathStrokeWidth(5) // 连线的宽度

  16. .autoReset(true) // 自动重置

  17. .activateCircleStyle({color:'green',radius:this.acs,enableWaveEffect:true})

  18. .onPatternComplete((input:Array<number>)=>{ //input: 输入的数字的数组

  19. // 输入完成后重置

  20. this.patternLockController.reset()

  21. if (input.length<5){

  22. this.pwdMsg='最少连接5个'

  23. return // 结束函数

  24. }

  25. if (this.onPattern.length==0) {

  26. this.onPattern=input

  27. this.pwdMsg='请确认密码'

  28. }else {

  29. if (this.onPattern.toString()==input.toString()) {

  30. this.pwdMsg='两次密码一致'

  31. this.patternLockController.setChallengeResult(PatternLockChallengeResult.CORRECT)

  32. // todo 密码一致后跳转新页面

  33. }else {

  34. this.pwdMsg='两次密码不一致'

  35. this.patternLockController.setChallengeResult(PatternLockChallengeResult.WRONG)

  36. }

  37. }

  38. })

  39. .onDotConnect((num)=>{ // num:输入的单个数字

  40. console.log('选中的数字:'+num)

  41. })

  42. }

未设置密码样式

 

设置密码时的样式

第一次密码设置

 

两次密码设置不一致的效果

两次密码一致时的样式

 

最少连接五个

十七.Progress

进度条组件,用于显示内容加载或操作处理等进度。

1.Progress接口

Progress(options: ProgressOptions)

参数名类型必填说明
optionsProgressOptions按进度条类型不同,设置不同属性的进度条组件参数。
ProgressOptions<Type>对象说明
名称类型必填说明
valuenumber

指定当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。

默认值:0

totalnumber

指定进度总长。设置小于等于0的数值时置为100。

默认值:100

typeProgressType

指定进度条类型。

默认值:ProgressType.Linear

ProgressType枚举说明
名称说明
Linear线性样式。从API version9开始,高度大于宽度的时候自适应垂直显示。
Ring环形无刻度样式,环形圆环逐渐显示至完全填充效果。
Eclipse圆形样式,显示类似月圆月缺的进度展示效果,从月牙逐渐变化至满月。
ScaleRing环形有刻度样式,显示类似时钟刻度形式的进度展示效果。从API version9开始,刻度外圈出现重叠的时候自动转换为环形无刻度进度条。
Capsule胶囊样式,头尾两端圆弧处的进度展示效果与Eclipse相同;中段处的进度展示效果与Linear相同。高度大于宽度的时候自适应垂直显示。

2.属性

(1)value

设置当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。非法数值不生效。

参数名类型必填说明
valuenumber

当前进度值。

默认值:0

(2)color

设置进度条前景色。

参数名类型必填说明
valueResourceColor | LinearGradient10+

进度条前景色。

(3)style

设置组件的样式

参数名类型必填说明
value

ProgressStyleOptions8+ | CapsuleStyleOptions10+ |

RingStyleOptions10+ | LinearStyleOptions10+ |

ScaleRingStyleOptions10+ | EclipseStyleOptions10+

组件的样式。

- CapsuleStyleOptions:设置Capsule的样式。

- RingStyleOptions:设置Ring的样式。

- LinearStyleOptions:设置Linear的样式。

- ScaleRingStyleOptions:设置ScaleRing的样式。

- EclipseStyleOptions:设置Eclipse的样式。

- ProgressStyleOptions:仅可设置各类型进度条的基本样式。

ProgressStyleOptions,暂不支持其它的参数类型

1.ProgressStyleOptions:仅可设置各类型进度条的基本样式
名称类型必填说明
strokeWidthLength

设置进度条宽度(不支持百分比设置)。

默认值:4.0vp

scaleCountnumber

设置环形进度条总刻度数。

默认值:120

scaleWidthLength

设置环形进度条刻度粗细(不支持百分比设置),刻度粗细大于进度条宽度时,为系统默认粗细。

默认值:2.0vp

2.CapsuleStyleOptions:设置Capsule(胶囊样式)的样式
名称类型必填说明
borderColorResourceColor

内描边颜色。

默认值:

API version 10:'#33006cde'

API version 11及以上:'#33007dff'

borderWidthLength

内描边宽度(不支持百分比设置)。

默认值:1vp

contentstring文本内容,应用可自定义。
fontFont

文本样式。

默认值:

- 文本大小(不支持百分比设置):12fp

其他文本参数跟随text组件的主题值。

fontColorResourceColor

文本颜色。

默认值:'#ff182431'

showDefaultPercentageboolean

显示百分比文本的开关,开启后会在进度条上显示当前进度的百分比。设置了content属性时该属性不生效。

默认值:false

3.RingStyleOptions:设置Ring(环形无刻度样式)的样式
名称类型必填说明
strokeWidthLength

设置进度条宽度(不支持百分比设置),宽度大于等于半径时,默认修改宽度至半径值的二分之一。

默认值:4.0vp

shadowboolean

进度条阴影开关。

默认值:false

statusProgressStatus

进度条状态,当设置为LOADING时会开启检查更新动效,此时设置进度值不生效。当从LOADING设置为PROGRESSING,检查更新动效会执行到终点再停止。

默认值: ProgressStatus.PROGRESSING

ProgressStatus枚举说明
名称说明
LOADING加载中。
PROGRESSING进度更新中。
4.LinearStyleOptions:设置Linear(线性样式)的样式
名称类型必填说明
strokeWidthLength

设置进度条宽度(不支持百分比设置)。

默认值:4.0vp

strokeRadiusPX | VP | LPX | Resource

设置线性进度条圆角半径。

取值范围[0, strokeWidth / 2]。默认值:strokeWidth / 2。

5.ScaleRingStyleOptions:设置ScaleRing(环形有刻度样式)的样式。
名称类型必填说明
strokeWidthLength

设置进度条宽度(不支持百分比设置)。

默认值:4.0vp

scaleCountnumber

设置环形进度条总刻度数。

默认值:120

scaleWidthLength

设置环形进度条刻度粗细(不支持百分比设置),刻度粗细大于进度条宽度时,为系统默认粗细。

默认值:2.0vp

(4)privacySensitive

设置隐私敏感。

参数名类型必填说明
isPrivacySensitiveMode[Optional<boolean>]

设置隐私敏感,隐私模式下进度清零,文字将被遮罩。

说明:

设置null则不敏感。

需要卡片框架支持。

(5)ProgressConfiguration
名称类型必填说明
valuenumber当前进度值。
totalnumber进度总长。
(6)CommonProgressStyleOptions

进度平滑动效的开关

名称类型必填说明
enableSmoothEffectboolean

进度平滑动效的开关。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。

默认值:true

(7)ScanEffectOptions

扫光效果的开关

名称类型必填说明
enableScanEffectboolean

扫光效果的开关。

默认值:false

 
  1. @State ProValue:number=30

  2. @Builder ProgressTest(){

  3. Scroll(){

  4. Column({space:10}){

  5. Progress({value:50,total:100,type:ProgressType.Linear}) // 线性样式

  6. Progress({value:50,total:100,type:ProgressType.Ring}) //环形无刻度样式

  7. .height(200)

  8. .style({

  9. strokeWidth:10,

  10. shadow:true,

  11. status:ProgressStatus.PROGRESSING

  12. })

  13. Progress({value:50,total:100,type:ProgressType.Eclipse}) //圆形样式

  14. Progress({value:50,total:100,type:ProgressType.ScaleRing}) //环形有刻度样式

  15. Progress({value:50,total:100,type:ProgressType.Capsule}) //胶囊型样式

  16. .value(this.ProValue) // 默认值

  17. // .color('blue') //进度条颜色

  18. .backgroundColor('#ccc') // 进度条底色

  19. .style({

  20. borderColor:'red', //边框颜色

  21. borderWidth:1, // 边框宽度

  22. // content:`下载进度${this.ProValue}%`,

  23. font:({size:14,style:FontStyle.Italic}),

  24. fontColor:'white',

  25. enableScanEffect:true, //扫光效果

  26. showDefaultPercentage:true, //显示百分比,和content后无效

  27. enableSmoothEffect:true

  28. })

  29. Progress({value:50,total:100,type:ProgressType.ScaleRing}) //环形有刻度样式

  30. .height(300)

  31. .value(this.ProValue)

  32. .style({

  33. strokeWidth:10,

  34. scaleCount:100, //总刻数

  35. scaleWidth:5, // 刻度线宽度

  36. enableSmoothEffect:true //平滑进度开关

  37. })

  38. .onClick(()=>{

  39. this.ProValue+=10

  40. })

  41. }

  42. }

  43. }

进度条效果

3. 自定义样式
 
  1. class MyProgressModifier implements ContentModifier<ProgressConfiguration> {

  2. color: Color = Color.White

  3. constructor(color:Color) {

  4. this.color = color

  5. }

  6. applyContent() : WrappedBuilder<[ProgressConfiguration]>

  7. {

  8. return wrapBuilder(myProgress)

  9. }

  10. }

  11. @Builder function myProgress(config: ProgressConfiguration ) {

  12. Column({space:30}) {

  13. Text("当前进度:" + config.value + "/" + config.total).fontSize(20)

  14. Row() {

  15. Flex({ justifyContent: FlexAlign.SpaceBetween }) {

  16. Path()

  17. .width('20%')

  18. .height('20%')

  19. .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')

  20. .fill(config.enabled && config.value >=1 ? (config.contentModifier as MyProgressModifier).color : Color.White)

  21. .stroke(Color.Black)

  22. .strokeWidth(5)

  23. Path()

  24. .width('20%')

  25. .height('20%')

  26. .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')

  27. .fill(config.enabled && config.value >=2 ? (config.contentModifier as MyProgressModifier).color : Color.White)

  28. .stroke(Color.Black)

  29. .strokeWidth(5)

  30. Path()

  31. .width('20%')

  32. .height('20%')

  33. .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')

  34. .fill(config.enabled && config.value >=3 ? (config.contentModifier as MyProgressModifier).color : Color.White)

  35. .stroke(Color.Black)

  36. .strokeWidth(5)

  37. Path()

  38. .width('20%')

  39. .height('20%')

  40. .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')

  41. .fill(config.enabled && config.value >=4 ? (config.contentModifier as MyProgressModifier).color : Color.White)

  42. .stroke(Color.Black)

  43. .strokeWidth(5)

  44. Path()

  45. .width('20%')

  46. .height('20%')

  47. .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')

  48. .fill(config.enabled && config.value >=5 ? (config.contentModifier as MyProgressModifier).color : Color.White)

  49. .stroke(Color.Black)

  50. .strokeWidth(5)

  51. }.width('100%')

  52. }

  53. }.margin({bottom:100})

  54. }

  55. @Entry

  56. @Component

  57. struct Component4Page {

  58. @State message: string = 'Hello World';

  59. build() {

  60. Column(){

  61. this.ProgressTest2()

  62. }

  63. .height('100%')

  64. .width('100%')

  65. }

  66. @State wjx:number=0

  67. myModifer:MyProgressModifier=new MyProgressModifier(Color.Green)

  68. @Builder ProgressTest2(){

  69. Progress({value:this.wjx,total:5,type:ProgressType.Ring})

  70. .contentModifier(this.myModifer)

  71. Button('++').onClick(()=>{

  72. if (this.wjx<5) {

  73. this.wjx++

  74. }

  75. })

  76. Button('--').onClick(()=>{

  77. if (this.wjx>0) {

  78. this.wjx--

  79. }

  80. })

  81. }

  82. }

无操作时样式

 

一星

十八. QRCode二维码

1.QRCode接口

QRCode(value: string)

参数名类型必填说明
valuestring

二维码内容字符串。最大支持512个字符,若超出,则截取前512个字符。

说明:

该字符串内容确保有效,不支持null、undefined以及空内容,当传入上述内容时,将生成无效二维码。

2. 属性

参数名类型必填说明
colorResourceColor二维码颜色
backgroundColorResourceColor二维码背景颜色。
contentOpactiynumber|Resource二维码内容颜色的不透明度。
 
  1. @Builder QrCodeTest(){

  2. QRCode('hello world!')

  3. .color('green')

  4. .backgroundColor('#fdf')

  5. .contentOpacity(0.5)

  6. }

hello word!二维码

十九. Radio

单选框,提供相应的用户交互选择项。

1. Radio接口

Radio(options: RadioOptions):创建单选框组件。

参数名类型必填说明
optionsRadioOptions配置单选框的参数。
RadioOptions对象说明
名称类型必填说明
valuestring

当前单选框的值。

groupstring

当前单选框的所属群组名称,相同group的Radio只能有一个被选中。

indicatorType12+RadioIndicatorType

配置单选框的选中样式。未设置时按照RadioIndicatorType.TICK进行显示。

indicatorBuilder12+CustomBuilder

配置单选框的选中样式为自定义组件。自定义组件与Radio组件为中心点对齐显示。indicatorBuilder设置为undefined时,按照RadioIndicatorType.TICK进行显示。

RadioIndicatorType枚举说明
名称说明
TICK选中样式为系统默认TICK图标。
DOT选中样式为系统默认DOT图标。
CUSTOM选中样式为indicatorBuilder中的内容。

2.属性

参数名类型必填说明
checkedboolean

单选框的选中状态。

默认值:false

radioStyleRadioStyle单选框选中状态和非选中状态的样式。
contentModifferContentModifier<RadioConfiguration>

在Radio组件上,定制内容区的方法。

modifier: 内容修改器,开发者需要自定义class实现ContentModifier接口。

RadioStyle对象说明
名称类型必填说明
checkedBackgroundColorResourceColor

开启状态底板颜色。

默认值:#007DFF

uncheckedBorderColorResourceColor

关闭状态描边颜色。

默认值:#182431

indicatorColorResourceColor

开启状态内部圆饼颜色。从API version 12开始,indicatorType设置为RadioIndicatorType.TICK和RadioIndicatorType.DOT时,支持修改内部颜色。indicatorType设置为RadioIndicatorType.CUSTOM时,不支持修改内部颜色。

默认值:#FFFFFF

RadioConfiguration对象说明

开发者需要自定义class实现ContentModifier接口。

名称类型只读可选说明
valuestring当前单选框的值。
checkedboolean

设置单选框的选中状态。

默认值:false

triggerChangeCallback<boolean>触发单选框选中状态变化。

3. 事件

onChange

单选框选中状态改变时触发回调。

参数名类型必填说明
isCheckedboolean

单选框的状态。

为true时,表示从未选中变为选中。为false时,表示从选中变为未选中。

 
  1. class MyRadio implements ContentModifier<RadioConfiguration>{

  2. type: number = 0

  3. selectedColor:Color = Color.Black

  4. constructor(numberType: number, colorType:Color) {

  5. this.type = numberType

  6. this.selectedColor = colorType

  7. }

  8. applyContent(): WrappedBuilder<[RadioConfiguration]> {

  9. return wrapBuilder(a)

  10. }

  11. }

  12. @Builder function a(config:RadioConfiguration){

  13. SymbolGlyph($r('sys.symbol.heart_fill'))

  14. .fontColor(config.checked?[(config.contentModifier as MyRadio).selectedColor]:['gray'])

  15. .onClick(()=>{

  16. if (config.checked) {

  17. config.triggerChange(false)

  18. }else {

  19. config.triggerChange(true)

  20. }

  21. })

  22. }

  23. @Entry

  24. @Component

  25. struct Component5Page {

  26. @State message: string = 'Hello World';

  27. build() {

  28. Column(){

  29. this.readioTest()

  30. }

  31. .height('100%')

  32. .width('100%')

  33. }

  34. @Builder rs(){

  35. Image($r('app.media.1'))

  36. .borderRadius(100)

  37. // SymbolGlyph($r('sys.symbol.camera_metering_spot'))

  38. }

  39. myRadio:MyRadio=new MyRadio(0,Color.Red)

  40. @Builder readioTest(){

  41. Row(){

  42. Text('性别:')

  43. Radio({value:'男',group:'sex',indicatorType:RadioIndicatorType.DOT})

  44. .checked(true)

  45. .radioStyle({

  46. checkedBackgroundColor:Color.Green,

  47. uncheckedBorderColor:Color.Brown,

  48. indicatorColor:Color.Orange

  49. })

  50. Text('男')

  51. Radio({value:'女',group:'sex',indicatorType:RadioIndicatorType.CUSTOM})

  52. .radioStyle({

  53. checkedBackgroundColor:Color.Green,

  54. uncheckedBorderColor:Color.Brown,

  55. indicatorColor:Color.Orange

  56. })

  57. Text('女')

  58. Radio({value:'未知',group:'sex',indicatorType:RadioIndicatorType.CUSTOM,

  59. indicatorBuilder:this.rs()

  60. })

  61. .radioStyle({

  62. checkedBackgroundColor:Color.Green,

  63. uncheckedBorderColor:Color.Brown,

  64. indicatorColor:Color.Orange

  65. })

  66. Text('未知')

  67. Radio({value:'未知',group:'sex' })

  68. .contentModifier(this.myRadio)

  69. }

  70. .width('100%')

  71. Row(){

  72. Radio({value:'a',group:'a'})

  73. .contentModifier(new MyRadio(1,Color.Red))

  74. Radio({value:'a',group:'a'})

  75. .contentModifier(new MyRadio(2,Color.Red))

  76. }

  77. }

  78. }

二十.Rating

提供在给定范围内选择评分的组件

1.接口

Rating(options?: { rating: number, indicator?: boolean })

参数名类型必填说明
ratingnumber

设置并接收评分值。

默认值:0

取值范围: [0, stars]

小于0取0,大于stars取最大值stars。

从API version 10开始,该参数支持$$双向绑定变量。

indicatorboolean

设置评分组件作为指示器使用,不可改变评分。

默认值:false, 可进行评分

说明:

indicator=true时,默认组件高度height=12.0vp,组件width=height * stars。

indicator=false时,默认组件高度height=28.0vp,组件width=height * stars。

2. 属性

参数名类型必填说明
starsnumber

设置评分总数。

默认值:5

stepSizenumber

操作评级的步长。

默认值:0.5

取值范围:[0.1, stars]

starStyle

{

backgroundUri: string,

foregroundUri: string,

secondaryUri?: string

}

backgroundUri:未选中的星级的图片链接,可由用户自定义或使用系统默认图片。

foregroundUri:选中的星级的图片路径,可由用户自定义或使用系统默认图片。

secondaryUri:部分选中的星级的图片路径,可由用户自定义或使用系统默认图片。

说明:

backgroundUri或者foregroundUri或者secondaryUri设置的图片路径错误时,图片不显示。

backgroundUri或者foregroundUri设置为undefined或者空字符串时,rating会选择加载系统默认星型图源。

secondaryUri不设置或者设置的值为undefined或者空字符串时,优先设置为backgroundUri,效果上等同于只设置了foregroundUri、backgroundUri。

contentModifferContentModifier<RatingConfiguration>

在Rating组件上,定制内容区的方法。

modifier: 内容修改器,开发者需要自定义class实现ContentModifier接口。

RatingConfiguration对象说明

开发者需要自定义class实现ContentModifier接口

名称类型只读可选说明
ratingnumber

评分条当前评分数。

默认值:0

indicatorboolean

评分条是否作为一个指示器。

默认值:false

starsnumber

评分条的星级总数。

默认值:5

stepSizenumber

评分条的评分步长。

默认值:0.5

triggerChangeCallback<number>触发评分数量变化。

3. 事件

onChange:操作评分条的评星发生改变时触发该回调。

参数名类型必填说明
valuenumber评分条的评分。

键盘走焦规格
按键功能描述
Tab组件间切换焦点。
左右方向键评分预览增加/减少(步长为step),不改变实际分值。
Home移动到第一个星星, 不改变实际分值。
End移动到最后一个星星, 不改变实际分值。
Space/Enter根据当前评分提交评分结果。
 
  1. Rating({rating:0.5,indicator:true}) // 不可改变

  2. Rating({rating:0.5,indicator:false}) // 可以改变

  3. .stars(5) // 总数

  4. .stepSize(0.5) // 步长

默认样式

 
  1. Rating({rating:0.5,indicator:false})

  2. .stars(5) // 总数

  3. .stepSize(0.5) // 步长

  4. .starStyle({

  5. backgroundUri:'/img/1.jpg',

  6. foregroundUri:'/img/2.jpg',

  7. secondaryUri:'/img/3.jpg'

  8. })

设置星级图片样式

 
  1. class MyRating implements ContentModifier<RatingConfiguration>{

  2. applyContent(): WrappedBuilder<[RatingConfiguration]> {

  3. return wrapBuilder(rating)

  4. }

  5. }

  6. @Builder function rating(config:RatingConfiguration){

  7. Column(){

  8. Row(){

  9. SymbolGlyph(config.rating>0?$r('sys.symbol.star_fill'):$r('sys.symbol.star'))

  10. .fontColor(['red'])

  11. .onClick(()=>{

  12. config.triggerChange(1)

  13. })

  14. SymbolGlyph(config.rating>1?$r('sys.symbol.star_fill'):$r('sys.symbol.star'))

  15. .fontColor(['red'])

  16. .onClick(()=>{

  17. config.triggerChange(2)

  18. })

  19. SymbolGlyph(config.rating>2?$r('sys.symbol.star_fill'):$r('sys.symbol.star'))

  20. .fontColor(['red'])

  21. .onClick(()=>{

  22. config.triggerChange(3)

  23. })

  24. }

  25. .width('100%')

  26. }

  27. }

  28. @Entry

  29. @Component

  30. struct Component5Page {

  31. @State message: string = 'Hello World';

  32. build() {

  33. Column(){

  34. // this.readioTest()

  35. this.RatingTest()

  36. // this.richTest()

  37. }

  38. .height('100%')

  39. .width('100%')

  40. }

  41. @Builder RatingTest(){

  42. Rating({rating:1,indicator:false})

  43. .stars(3)

  44. .stepSize(1)

  45. .contentModifier(new MyRating())

  46. }

  47. }

自定义内容区

二十一. RichEditor

支持图文混排和文本交互式编辑的组件

不包含子组件

1.RichEdiitor接口

RichEditor(value: RichEditorOptions)

参数名类型必填说明
valueRichEditorOptions富文本组件初始化选项。
RichEditorOptions

RichEditor初始化参数。

名称类型必填说明
controllerRichEditorController富文本控制器。

 RichEditor(options: RichEditorStyledStringOptions)

参数名类型必填说明
optionsRichEditorStyledStringOptions富文本组件初始化选项。
RichEditorStyledStringOptions

RichEditor初始化参数。

名称类型必填说明
controllerRichEditorStyledStringController富文本控制器。

2. 属性

(1)customKeyboard

customKeyboard(value: CustomBuilder, options?: KeyboardOptions)

设置自定义键盘。

当设置自定义键盘时,输入框激活后不会打开系统输入法,而是加载指定的自定义组件。

自定义键盘的高度可以通过自定义组件根节点的height属性设置,宽度不可设置,使用系统默认值。

自定义键盘无法获取焦点,但是会拦截手势事件。

默认在输入控件失去焦点时,关闭自定义键盘。

如果设备支持拍摄输入,设置自定义键盘后,该输入框会不支持拍摄输入。

参数名类型必填说明
valueCustomBuilder

自定义键盘。

optionsKeyboardOptions设置自定义键盘是否支持避让功能。
(2)bindSelectionMenu

bindSelectionMenu(spanType: RichEditorSpanType, content: CustomBuilder, responseType: ResponseType | RichEditorResponseType,options?: SelectionMenuOptions)

设置自定义选择菜单。自定义菜单超长时,建议内部嵌套Scroll组件使用,避免键盘被遮挡。

参数名类型必填说明
spanTypeRichEditorSpanType

菜单的类型。

默认值:

RichEditorSpanType.TEXT

contentCustomBuilder菜单的内容。
responseTypeResponseType | RichEditorResponseType

菜单的响应类型。

默认值:

ResponseType.LongPress

optionsSelectionMenuOptions菜单的选项。
RichEditorResponseType枚举

菜单的响应类型。

名称说明
LONG_PRESS通过长按触发菜单弹出。
RIGHT_CLICK通过鼠标右键触发菜单弹出。
SELECT通过鼠标选中触发菜单弹出。
(3)copyOptions

copyOptions(value: CopyOptions)

设置组件是否支持文本内容可复制粘贴。

copyOptions不为CopyOptions.None时,长按组件内容,会弹出文本选择弹框。如果通过bindSelectionMenu等方式自定义文本选择菜单,则会弹出自定义的菜单。

参数名类型必填说明
valueCopyOptions

组件支持文本内容是否可复制粘贴。

默认值:CopyOptions.LocalDevice

(4)enableDataDetector

enableDataDetector(enable: boolean)

设置是否进行文本特殊实体识别。该接口依赖设备底层应具有文本识别能力,否则设置不会生效。

当enableDataDetector设置为true,同时不设置dataDetectorConfig属性时,默认识别所有类型的实体,所识别实体的color和decoration会被更改为如下样式:

 
  1. color: '#ff007dff'

  2. decoration:{

  3. type: TextDecorationType.Underline,

  4. color: '#ff007dff',

  5. style: TextDecorationStyle.SOLID

  6. }

触摸点击和鼠标右键点击实体,会根据实体类型弹出对应的实体操作菜单,鼠标左键点击实体会直接响应菜单的第一个选项。

对addBuilderSpan的节点文本,该功能不会生效。

当copyOption设置为CopyOptions.None时,点击实体弹出的菜单没有选择文本和复制功能。

参数名类型必填说明
enableboolean

使能文本识别。

默认值: false

(5)dataDetectorConfig

dataDetectorConfig(config: TextDataDetectorConfig)

设置文本识别配置。

需配合enableDataDetector一起使用,设置enableDataDetector为true时,dataDetectorConfig的配置才能生效。

当有两个实体A、B重叠时,按以下规则保留实体:

1. 若A ⊂ B,则保留B,反之则保留A。

2. 当A ⊄ B且B ⊄ A时,若A.start < B.start,则保留A,反之则保留B。

参数名类型必填说明
configTextDataDetectorConfig文本识别配置。
(6)enablePreviewText

enablePreviewText(enable: boolean)

设置是否开启预上屏功能。

参数名类型必填说明
enableboolean

使能预上屏功能。

默认值: true

 该接口在CAPI场景使用时下,默认关闭。可以在工程的module.json5中配置metadata字段控制是否启用预上屏,配置如下:

 
  1. "metadata": [

  2. {

  3. "name": "can_preview_text",

  4. "value": "true",

  5. }

  6. ]

(7)placeholder

placeholder(value: ResourceStr, style?: PlaceholderStyle)

设置无输入时的提示文本

参数名类型必填说明
valueResourceStr无输入时的提示文本。
stylePlaceholderStyle

添加提示文本的字体样式。

style缺省时默认跟随主题。

(8)careColor

caretColor(value:ResourceColor)

设置输入框光标、手柄颜色

参数名类型必填说明
valueResourceColor

输入框光标、手柄颜色。

默认值:'#007DFF'

(9)selectedBackgroundColor

selectedBackgroundColor(value: ResourceColor)

设置文本选中底板颜色。如果未设置不透明度,默认为20%不透明度

参数名类型必填说明
valueResourceColor

文本选中底板颜色。

默认为20%不透明度。

(10)editMenuOptions

editMenuOptions(editMenu:EditMenuOptions)

设置自定义菜单扩展项,允许用户设置扩展项的文本内容、图标、回调方法。

参数名类型必填说明
editMenuEditMenuOptions扩展菜单选项。
(11)enterKeyType

enterKeyType(value:EnterKeyType)

设置软键盘输入法回车键类型。

参数名类型必填说明
valueEnterKeyType

键盘输入法回车键类型。

默认为EnterKeyType.NEW_LINE。

(12)enableKeyboardOnFocus

enableKeyboardOnFocus(isEnabled: boolean)

设置RichEditor通过点击以外的方式获焦时,是否绑定输入法。

参数名类型必填说明
isEnabledboolean

通过点击以外的方式获焦时,是否绑定输入法。

默认值:true

(13)barState

barState(state: BarState)

设置RichEditor编辑态时滚动条的显示模式。

参数名类型必填说明
valueBarState

输入框编辑态时滚动条的显示模式。

默认值:BarState.Auto

(14)enableHapticFeedback

enableHapticFeedback(isEnabled:boolean)

设置RichEditor是否支持触控反馈。

参数名类型必填说明
isEnabledboolean

是否支持触控反馈。

默认值:true,true表示开启触控反馈,false表示不开启触控反馈。

设置为true后是否生效,还取决于系统的硬件是否支持。

3.事件

除支持通用事件外,还支持OnDidChangeCallbackStyledStringChangedListenerStyledStringChangeValue和以下事件:

(1)onReady

onReady(callback:Callback<void>)

富文本组件初始化完成后,触发回调。

参数名类型必填说明
callbackCallback<void>订阅富文本组件初始化完成的回调。
(2)onSelect

onSelect(callback:Callback<RichEditorSelection>)

鼠标左键双击选中内容时,会触发回调;松开鼠标左键后,会再次触发回调。

手指长按选中内容时,会触发回调;松开手指后,会再次触发回调。

参数名类型必填说明
callbackCallback<RichEditorSelection>

RichEditorSelection为选中的所有span信息。

选择时触发的回调。

(3)aboutTolMeInput

aboutToIMEInput(callback:Callback<RichEditorInsertValue, boolean>)

输入法输入内容前,触发回调。使用RichEditorStyledStringOptions构建的RichEditor组件时不支持该回调

参数名类型必填说明
callbackCallback<RichEditorInsertValue, boolean>

RichEditorInsertValue为输入法将要输入内容信息。

true:组件执行添加内容操作。

false:组件不执行添加内容操作

输入法输入内容前的回调。

(4)onDidMEInput

onDidlMeInput(callback:Callback<TextRange>)

输入法完成输入时,触发回调。

使用RichEditorStyledStringOptions构建的RichEditor组件时不支持该回调。

参数名类型必填说明
callbackCallback<TextRange>

TextRange为输入法本次输入内容的范围。

输入法完成输入时的回调。

(5)onlMEInputComplete

onIMEInputComplete(callback:Callback<RichEditorTextSpanResult>)

输入法完成输入后,触发回调。

使用RichEditorStyledStringOptions构建的RichEditor组件时不支持该回调。

参数名类型必填说明
callbackCallback<RichEditorTextSpanResult>

RichEditorTextSpanResult为输入法完成输入后的文本Span信息。

输入法完成输入后的回调。

(6)aboutToDelete

aboutToDelete(callback:Callback<RichEditorDeleteValue, boolean>)

输入法删除内容前,触发回调。

使用RichEditorStyledStringOptions构建的RichEditor组件时不支持该回调。

参数名类型必填说明
callbackCallback<RichEditorDeleteValue, boolean>

RichEditorDeleteValue为准备删除的内容所在的文本或者图片Span信息。

true:组件执行删除操作。

false:组件不执行删除操作。

输入法删除内容前的回调。

(7)onDeleteComplete

onDeleteComplete(callback:Callback<void>)

输入法完成删除后,触发回调。

使用RichEditorStyledStringOptions构建的RichEditor组件时不支持该回调。

参数名类型必填说明
callbackCallback<void>订阅输入法完成删除的回调。
(8)onPaste

onPaste(callback: PasteEventCallback )

完成粘贴前,触发回调。开发者可以通过该方法,覆盖系统默认行为,实现图文的粘贴。

参数名类型必填说明
callbackPasteEventCallback订阅完成粘贴前的回调。
(9)onSelectionChange

onSelectionChange(callback:Callback<RichEditorRange>)

组件内所有内容选择区域发生变化或编辑状态下光标位置发生变化时触发该回调。光标位置发生变化回调时,选择区域的起始位置等于终止位置。

参数名类型必填说明
callbackCallback<RichEditorRange>

RichEditorRange为所有内容的选择区域起始和终止位置。

订阅文本选择区域发生变化或编辑状态下光标位置发生变化时触发的回调

(10)onEditingChange

onEditingChange(callback: Callback<boolean>)

组件内所有内容的编辑状态发生改变时触发该回调函数。

参数名类型必填说明
callbackCallback<boolean>true表示编辑态,false表示非编辑态。
(11)onSubmit

onSubmit(callback: SubmitCallback)

按下软键盘输入法回车键触发该回调。

参数名类型必填说明
callbackSubmitCallback侦听事件的回调。
(12)onWillChange

onWillChange(callback: Callback<RichEditorChangeValue, boolean>)

组件内图文变化前,触发回调。

使用RichEditorStyledStringOptions构建的RichEditor组件时不支持该回调。

参数名类型必填说明
callbackCallback<RichEditorChangeValue , boolean>RichEditorChangeValue为图文变化信息;boolean表示当前图文是否允许被更改,true:允许图文被更改。false:不允许图文被更改。
(13)onDidChange

onDidChange(callback: OnDidChangeCallback)

图文变化后,触发回调。

使用RichEditorStyledStringOptions构建的RichEditor组件时不支持该回调。

参数名类型必填说明
callbackOnDidChangeCallback图文变化前后的内容范围。
(14)onCut

onCut(callback: Callback<CutEvent>)

完成剪切前,触发回调。系统的默认剪切行为,只支持纯文本的剪切。开发者可以通过该方法,覆盖系统默认行为,实现图文的剪切。

参数名类型必填说明
callbackCallback<CutEvent>定义用户剪切事件。
(15)onCopy

onCopy(callback: Callback<CopyEvent>)

完成复制前,触发回调。系统的默认复制行为,只支持纯文本的复制。开发者可以通过该方法,覆盖系统默认行为,实现图文的复制。

参数名类型必填说明
callbackCallback<CopyEvent>定义用户复制事件。

4. 枚举

(1)RichEditorInsertValue

插入文本信息。

名称类型必填说明
insertOffsetnumber

插入的文本偏移位置。

insertValuestring

插入的文本内容。

previewTextstring

插入的预上屏文本内容。

(2)RichEditorDeleteValue

删除操作的信息和被删除内容的信息。

名称类型必填说明
offsetnumber删除内容的偏移位置。
directionRichEditorDeleteDirection删除操作的方向。
lengthnumber删除内容长度。
richEditorDeleteSpansArray<RichEditorTextSpanResult | RichEditorImageSpanResult>删除的文本或者图片Span的具体信息。
(3)RichEditorDeleteDirection

删除操作的方向。

名称说明
BACKWARD向后删除。
FORWARD向前删除。
(4)RichEditorTextSpanResult

文本Span信息。

名称类型必填说明
spanPositionRichEditorSpanPosition

Span位置。

valuestring

文本Span内容。

textStyleRichEditorTextStyleResult

文本Span样式信息。

offsetInSpan[number, number]

文本Span内容里有效内容的起始和结束位置。

valueResourceResource

组件SymbolSpan内容。

symbolSpanStyleRichEditorSymbolSpanStyle

组件SymbolSpan样式信息。

paragraphStyleRichEditorParagraphStyle

段落样式。

previewTextstring

文本Span预上屏内容。

(5)RichEditorSpanPosition

Span位置信息。

名称类型必填说明
spanIndexnumberSpan索引值。
spanRange[number, number]Span内容在RichEditor内的起始和结束位置。
(6)RichEditorSpanType

Span类型信息。

名称说明
TEXT0Span为文字类型。
IMAGE1Span为图像类型。
MIXED2Span为图文混合类型。
BUILDER3Span为BuilderSpan类型。
(7)RichEditorTextStyleResult

后端返回的文本样式信息

名称类型必填说明
fontColorResourceColor

文本颜色。

fontSizenumber

字体大小,默认单位为fp。

fontStyleFontStyle

字体样式。

fontWeightnumber

字体粗细。

fontFamilystring

字体列表。

decorationDecorationStyleResult

文本装饰线样式信息。

textShadowArray<ShadowOptions>

文字阴影效果。

lineHeightnumber

文本行高,默认单位为fp。

letterSpacingnumber

文本字符间距,默认单位为fp。

fontFeature12+string

文字特性效果。

(8)RichEditorSymbolSpanStyleResult

后端返回的SymbolSpan样式信息。

名称类型必填说明
fontColorArray<ResourceColor>

SymbolSpan组件颜色。

默认值:不同渲染策略下默认值不同。

fontSizenumber | string | Resource

SymbolSpan组件大小,默认单位为fp。

默认值:跟随主题。

fontWeightnumber | FontWeight | string

SymbolSpan组件粗细。

number类型取值[100,900],取值间隔为100,默认为400,取值越大,字体越粗。

string类型仅支持number类型取值的字符串形式,例如“400”,以及“bold”、“bolder”、“lighter”、“regular” 、“medium”分别对应FontWeight中相应的枚举值。

默认值:FontWeight.Normal。

renderingStrategySymbolRenderingStrategy

SymbolSpan组件渲染策略。

默认值:SymbolRenderingStrategy.SINGLE。

effectStrategySymbolEffectStrategy

SymbolSpan组件动效策略。

默认值:SymbolEffectStrategy.NONE。

(9)RichEditorImageSpanResult

后端返回的图片信息。

名称类型必填说明
spanPositionRichEditorSpanPositionSpan位置。
valuePixelMapPixelMap图片内容。
valueResourceStrResourceStr图片资源id。
imageStyleRichEditorImageSpanStyleResult图片样式。
offsetInSpan[number, number]Span里图片的起始和结束位置。
(10)RichEditorImageSpanStyleResult

后端返回的图片样式信息。

名称类型必填说明
size[number, number]

图片的宽度和高度,单位为px。默认值:size的默认值与objectFit的值有关,不同的objectFit值对应的size默认值也不同。objectFit的值为Cover时,图片高度为组件高度减去组件上下内边距,图片宽度为组件宽度减去组件左右内边距。

verticalAlignImageSpanAlignment

图片垂直对齐方式。

objectFitImageFit

图片缩放类型。

layoutStyleRichEditorLayoutStyle

图片布局风格。

(11)RichEditorLayoutStyle
名称类型必填说明
marginDimension | Margin

外边距类型,用于描述组件不同方向的外边距。

参数为Dimension类型时,四个方向外边距同时生效。

borderRadiusDimension | BorderRadiuses

圆角类型,用于描述组件边框圆角半径。

参数为Dimension类型时,不支持以Percentage形式设置。

(12)RichEditorChangeValue
名称类型必填说明
rangeBeforeTextRange即将被替换内容的开始和结束索引。
replacedSpansArray<RichEditorTextSpanResult>替换后文本Span的具体信息。
replacedImageSpansArray<RichEditorImageSpanResult>替换后ImageSpan的具体信息。
replacedSymbolSpansArray<RichEditorTextSpanResult>替换后SymbolSpan的具体信息。
(13)RichEditorBaseController

RichEditor组件控制器基类。

(14)getCaretOffset

getCaretOffset(): number

返回当前光标所在位置。

返回值:

类型说明
number当前光标所在位置。
(15)setCaretOffset

setCaretOffset(offset: number): boolean

设置光标位置。

参数名类型必填说明
offsetnumber光标偏移位置。超出所有内容范围时,设置失败。

返回值:

类型说明
boolean光标是否设置成功。
(16)closeSelectionMenu

closeSelectionMenu(): void

关闭自定义选择菜单或系统默认选择菜单。

(17)getTypingStyle

getTypingStyle(): RichEditorTextStyle

获得用户预设的样式。

返回值:

类型说明
RichEditorTextStyle用户预设样式。
(18)setTypingStyle

setTypingStyle(value: RichEditorTextStyle): void

设置用户预设的样式。

参数名类型必填说明
valueRichEditorTextStyle预设样式。
(19)setSelection

setSelection(selectionStart: number, selectionEnd: number, options?: SelectionOptions): void

支持设置组件内的内容选中,选中部分背板高亮。

selectionStart和selectionEnd均为-1时表示全选。

未获焦时调用该接口不产生选中效果。

从API version 12开始,在2in1设备中,无论options取何值,调用setSelection接口都不会弹出菜单,此外,如果组件中已经存在菜单,调用setSelection接口会关闭菜单。

在非2in1设备中,options取值为MenuPolicy.DEFAULT时,遵循以下规则:

  1. 组件内有手柄菜单时,接口调用后不关闭菜单,并且调整菜单位置。

  2. 组件内有不带手柄的菜单时,接口调用后不关闭菜单,并且菜单位置不变。

  3. 组件内无菜单时,接口调用后也无菜单显示。

参数名类型必填说明
selectionStartnumber选中开始位置。
selectionEndnumber选中结束位置。
optionsSelectionOptions选择项配置。
(20)isEditing

isEditing(): boolean

获取当前富文本的编辑状态。

返回值:

类型说明
booleantrue为编辑态,false为非编辑态。
(21)stopEditing

stopEditing(): void

退出编辑态。

(22)getLayoutManager

getLayoutManager(): LayoutManager

获取布局管理器对象。

返回值:

类型说明
LayoutManager布局管理器对象。
(23)getPreviewText

getPreviewText(): PreviewText

获取预上屏信息。

返回值:

类型说明
PreviewText预上屏信息。
(24)RichEditorController

RichEditor组件的控制器,继承自RichEditorBaseController

 
  1. 导入对象

  2. controller: RichEditorController = new RichEditorController()

(25)getCaretOffset

getCaretOffset(): number

返回当前光标所在位置。

返回值:

类型说明
number当前光标所在位置。
(26)setCaretOffset

setCaretOffset(offset: number): boolean

设置光标位置。

参数:

参数名类型必填说明
offsetnumber光标偏移位置。超出文本范围时,设置失败。

返回值:

类型说明
boolean光标是否设置成功。
(27)addTextSpan

addTextSpan(value: string, options?: RichEditorTextSpanOptions): number

添加文本内容,如果组件光标闪烁,插入后光标位置更新为新插入文本的后面。

参数:

参数名类型必填说明
valuestring文本内容。
optionsRichEditorTextSpanOptions文本选项。

返回值:

类型说明
number添加完成的TextSpan所在的位置。
(28)addImageSpan

addImageSpan(value: PixelMap | ResourceStr, options?: RichEditorImageSpanOptions): number

添加图片内容,如果组件光标闪烁,插入后光标位置更新为新插入图片的后面。

不建议直接添加网络图片

参数:

参数名类型必填说明
valuePixelMap|ResourceStr图片内容。
optionsRichEditorImageSpanOptions图片选项。

返回值:

类型说明
number添加完成的ImageSpan所在的位置。
(29)addBuilderSpan

addBuilderSpan(value: CustomBuilder, options?: RichEditorBuilderSpanOptions): number

  • RichEditor组件添加占位Span,占位Span调用系统的measure方法计算真实的长宽和位置。
  • 可通过RichEditorBuilderSpanOptions设置此builder在RichEditor中的index(一个文字为一个单位)。
  • 此占位Span不可获焦,支持拖拽,支持部分通用属性,占位、删除等能力等同于ImageSpan,长度视为一个文字。
  • 不支持通过bindSelectionMenu设置自定义菜单。
  • 不支持通过getSpansgetSelectiononSelectaboutToDelete获取builderSpan信息。
  • 不支持通过updateSpanStyleupdateParagraphStyle等方式更新builder。
  • 对此builder节点进行复制或粘贴不生效。
  • builder的布局约束由RichEditor传入,如果builder里最外层组件不设置大小,则会用RichEditor的大小作为maxSize。
  • builder的手势相关事件机制与通用手势事件相同,如果builder中未设置透传,则仅有builder中的子组件响应。
  • 如果组件光标闪烁,插入后光标位置更新为新插入builder的后面。

参数:

参数名类型必填说明
valueCustomBuilder自定义组件。
optionsRichEditorBuilderSpanOptionsbuilder选项。

返回值:

类型说明
number添加完成的builderSpan所在的位置。
(30)addSymbolSpan

addSymbolSpan(value: Resource, options?: RichEditorSymbolSpanOptions ): number

在Richeditor中添加SymbolSpan,如果组件光标闪烁,插入后光标位置更新为新插入Symbol的后面。

暂不支持手势、复制、拖拽处理。

参数:

参数名类型必填说明
valueResource组件内容。
optionsRichEditorSymbolSpanOptions组件选项。

返回值:

类型说明
number添加完成的SymbolSpan所在的位置。
(31)getTypingStyle

getTypingStyle(): RichEditorTextStyle

获得用户预设的样式。

返回值:

类型说明
RichEditorTextStyle用户预设样式。
(32)setTypingStyle

setTypingStyle(value: RichEditorTextStyle): void

设置用户预设的样式。

当开发者设置默认值(undefined/null)或未调用该接口时:

  • 使用键盘往无文本内容的RichEditor输入内容时,输入的文本样式是按照默认样式显示,默认样式请参照RichEditorTextStyle内容。

  • 使用键盘往有文本内容的RichEditor输入内容时,输入的文本是跟随前一个文本样式,不按照默认样式显示。

当开发者设置非默认值时:

  • 使用键盘往RichEditor输入内容均按照开发者设置的样式显示,如果预设样式中有未设置的属性则按照RichEditorTextStyle默认值显示。
参数名类型必填说明
valueRichEditorTextStyle预设样式。
(33)updateSpanStyle

updateSpanStyle(value: RichEditorUpdateTextSpanStyleOptions | RichEditorUpdateImageSpanStyleOptions | RichEditorUpdateSymbolSpanStyleOptions): void

更新文本、图片或SymbolSpan样式。

若只更新了一个Span的部分内容,则会根据更新部分、未更新部分将该Span拆分为多个Span。

使用该接口更新文本、图片或SymbolSpan样式时默认不会关闭自定义文本选择菜单。

参数名类型必填说明
valueRichEditorUpdateTextSpanStyleOptions | RichEditorUpdateImageSpanStyleOptions | RichEditorUpdateSymbolSpanStyleOptions文本、图片或SymbolSpan的样式选项信息。
(34)updateParagraphStyle

updateParagraphStyle(value: RichEditorParagraphStyleOptions): void

更新段落的样式。

参数名类型必填说明
valueRichEditorParagraphStyleOptions段落的样式选项信息。
(35)getSpans

getSpans(value?: RichEditorRange): Array<RichEditorImageSpanResult| RichEditorTextSpanResult>

获取span信息。

参数名类型必填说明
valueRichEditorRange需要获取span范围。

返回值:

类型说明
Array<RichEditorTextSpanResult | RichEditorImageSpanResult>文本和图片Span信息。
(36)deleteSpans

deleteSpans(value?: RichEditorRange): void

删除指定范围内的文本和图片。

参数名类型必填说明
valueRichEditorRange删除范围。省略时,删除所有文本和图片。
 (37)getParagraphs

getParagraphs(value?: RichEditorRange): Array<RichEditorParagraphResult>

获得指定返回的段落。

参数名类型必填说明
valueRichEditorRange需要获取段落的范围。

返回值:

类型说明
Array<RichEditorParagraphResult>选中段落的信息。
(38)closeSelectionMenu

closeSelectionMenu(): void

关闭自定义选择菜单或系统默认选择菜单。

(39)setSelection

setSelection(selectionStart: number, selectionEnd: number, options?: SelectionOptions): void

支持设置文本选中,选中部分背板高亮。

selectionStart和selectionEnd均为-1时表示全选。

未获焦时调用该接口不产生选中效果。

从API version 12开始,在2in1设备中,无论options取何值,调用setSelection接口都不会弹出菜单,此外,如果组件中已经存在菜单,调用setSelection接口会关闭菜单。

在非2in1设备中,options取值为MenuPolicy.DEFAULT时,遵循以下规则:

  1. 组件内有手柄菜单时,接口调用后不关闭菜单,并且调整菜单位置。

  2. 组件内有不带手柄的菜单时,接口调用后不关闭菜单,并且菜单位置不变。

  3. 组件内无菜单时,接口调用后也无菜单显示。

参数名类型必填说明
selectionStartnumber选中开始位置。
selectionEndnumber选中结束位置。
options12+SelectionOptions选择项配置
(40)getSelection

getSelection(): RichEditorSelection

获取选中内容。如果未选中内容,返回光标所在span信息。

返回值:

类型说明
RichEditorSelection选中内容信息。
(41)fromStyledString

fromStyledString(value: StyledString): Array<RichEditorSpan>

将属性字符串转换成span信息。

参数名类型必填说明
valueStyledString转换前的属性字符串。

返回值:

类型说明
Array<RichEditorSpan>文本和图片Span信息。

错误码:

错误码ID错误信息
401The parameter check failed.
(42)toStyledString

toStyledString(value: RichEditorRange): StyledString

将给定范围的组件内容转换成属性字符串。

参数名类型必填说明
valueRichEditorRange需要获取的范围。

返回值:

类型说明
StyledString转换后的属性字符串

错误码:

错误码ID错误信息
401The parameter check failed.
(43)RichEditorStyledStringController

使用属性字符串构建的RichEditor组件的控制器,继承自RichEditorBaseController

导入对象
controller: RichEditorStyledStringController = new RichEditorStyledStringController()
(44)getSelection

getSelection(): RichEditorRange

获取当前富文本当前的选中区域范围。

返回值:

类型说明
RichEditorRange选中区域范围。
(45)setStyledString

setStyledString(styledString: StyledString): void

设置富文本组件显示的属性字符串。

参数名类型必填说明
styledStringStyledString

属性字符串。

说明:

StyledString的子类MutableStyledString也可以作为入参值。

(46)getStyledString

getStyledString(): MutableStyledString;

获取富文本组件显示的属性字符串。

返回值:

类型说明
MutableStyledString富文本组件显示的属性字符串
(47)onContentChanged

onContentChanged(listener: StyledStringChangedListener): void

注册文本内容变化回调,该回调会在后端程序导致文本内容变更时触发

参数名类型必填说明
listenerStyledStringChangedListener文本内容变化回调监听器。
(48)RichEditorSelection

选中内容信息。

名称类型必填说明
selection[number, number]选中范围。
spansArray<RichEditorTextSpanResultRichEditorImageSpanResult>span信息。
(49)RichEditorRange

定义RichEditor的范围。

继承自RichEditorRange

名称类型必填说明
startnumber需要更新样式的文本起始位置,省略或者设置负值时表示从0开始。
endnumber需要更新样式的文本结束位置,省略或者超出文本范围时表示无穷大。

当start大于end时为异常情况,此时start为0,end为无穷大。

(50)RichEditorSpanStyleOptions

文本样式选项。

继承自RichEditorRange

(51)RichEditorUpdateTextSpanStyleOptions

文本样式选项。

继承自RichEditorSpanStyleOptions

名称类型必填说明
textStyleRichEditorTextStyle文本样式。
(52)RichEditorUpdateImageSpanStyleOptions

图片样式选项。

继承自RichEditorSpanStyleOptions

名称类型必填说明
imageStyleRichEditorImageSpanStyle图片样式。
(53)RichEditorUpdateSymbolSpanStyleOptions

SymbolSpan样式选项。

继承自RichEditorSpanStyleOptions

名称类型必填说明
symbolStyleRichEditorSymbolSpanStyle组件样式。
(54)RichEditorParagraphStyleOptions

段落样式选项。

继承自RichEditorSpanStyleOptions

名称类型必填说明
styleRichEditorParagraphStyle段落样式。
(55)RichEditorParagraphStyle

段落样式

名称类型必填说明
textAlignTextAlign

设置文本段落在水平方向的对齐方式。默认值:TextAlign.START

leadingMarginDimension | LeadingMarginPlaceholder

设置文本段落缩进,当段落仅存在ImageSpan或BuilderSpan时,此属性值不生效。参数为Dimension类型时,不支持以Percentage形式设置。默认值:{"size":["0.00px","0.00px"]}

wordBreak12+WordBreak

设置断行规则。

默认值:WordBreak.BREAK_WORD

lineBreakStrategy12+LineBreakStrategy

设置折行规则。

默认值:LineBreakStrategy.GREEDY

在wordBreak不等于breakAll的时候生效,不支持连字符。

(56)LeadingMarginPlaceholder

前导边距占位符,用于表示文本段落左侧与组件边缘之间的距离。

名称类型必填说明
pixelMapPixelMap

图片内容。

size[DimensionDimension]

图片大小,不支持设置百分比。

(57)RichEditorParagraphResult

后端返回的段落信息。

名称类型必填说明
styleRichEditorParagraphStyle段落样式。
range[number, number]段落起始和结束位置。
(58)RichEditorTextSpanOptions

添加文本的偏移位置和文本样式信息。

名称类型必填说明
offsetnumber

添加文本的位置。省略时,添加到所有内容的最后。

当值小于0时,放在所有内容最前面;当值大于所有内容长度时,放在所有内容最后面。

styleRichEditorTextStyle

文本样式信息。省略时,使用系统默认文本信息。

paragraphStyle11+RichEditorParagraphStyle

段落样式。

gesture11+RichEditorGesture

行为触发回调。省略时,仅使用系统默认行为。

(59)RichEditorTextStyle

文本样式信息。

名称类型必填说明
fontColorResourceColor

文本颜色。

默认值:$r('sys.color.font_primary')。

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

fontSizeLength | number

设置字体大小,Length为number类型时,使用fp单位。字体默认大小16。不支持设置百分比字符串。字体大小设置为0时,显示默认字体大小。

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

fontStyleFontStyle

字体样式。

默认值:FontStyle.Normal。

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

fontWeightnumber | FontWeight | string

字体粗细。

number类型取值[100,900],取值间隔为100,默认为400,取值越大,字体越粗。

string类型仅支持number类型取值的字符串形式,例如“400”,以及“bold”、“bolder”、“lighter”、“regular” 、“medium”分别对应FontWeight中相应的枚举值。

默认值:FontWeight.Normal。

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

fontFamilyResourceStr

设置字体列表。默认字体'HarmonyOS Sans',当前支持'HarmonyOS Sans'字体和注册自定义字体

默认字体:'HarmonyOS Sans'。

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

decorationDecorationStyleInterface

设置文本装饰线样式及其颜色。

type默认值:TextDecorationType.None。

color默认值:跟随字体颜色。

style默认值:TextDecorationStyle.SOLID。

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

textShadow11+ShadowOptions | Array<ShadowOptions>

设置文字阴影效果。该接口支持以数组形式入参,实现多重文字阴影。

说明:

仅支持设置阴影模糊半径、阴影的颜色、阴影的偏移量。

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

lineHeight12+number | string | Resource

设置文本的文本行高,设置值不大于0时,不限制文本行高,自适应字体大小,number类型时单位为fp,不支持设置百分比字符串。

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

letterSpacing12+number | string

设置文本字符间距,当取值为负值时,文字会发生压缩,负值过小时会将组件内容区大小压缩为0,导致无内容显示,number类型时单位为fp, 不支持设置百分比字符串。

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

fontFeature12+string

设置文字特性效果,比如数字等宽的特性。如果未设置,默认为变宽数字。设置无效字符保持默认。

格式为:normal | <feature-tag-value>

<feature-tag-value>的格式为:<string> [ <integer> | on | off ]

<feature-tag-value>的个数可以有多个,中间用','隔开。

例如,使用等宽时钟数字的输入格式为:"ss01" on。

Font Feature当前支持的属性见 fontFeature属性列表

设置 Font Feature 属性,Font Feature 是 OpenType 字体的高级排版能力,如支持连字、数字等宽等特性,一般用在自定义字体中,其能力需要字体本身支持。

更多 Font Feature 能力介绍可参考 CSS Fonts Module Level 3 和 The Complete CSS Demo for OpenType Features

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

 (60)PlaceholderStyle

添加提示文本的字体样式。

名称类型必填说明
fontFont

设置placeholder文本样式。

默认值跟随主题。

fontColorResourceColor

设置placeholder文本颜色。

默认值跟随主题。

(61)RichEditorImageSpanOptions

添加图片的偏移位置和图片样式信息。

名称类型必填说明
offsetnumber

添加图片的位置。省略时,添加到所有内容的最后。

当值小于0时,放在所有内容最前面;当值大于所有内容长度时,放在所有内容最后面。

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

imageStyleRichEditorImageSpanStyle

图片样式信息。省略时,使用系统默认图片信息。

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

gesture11+RichEditorGesture

行为触发回调。省略时,仅使用系统默认行为。

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

(62)RichEditorImageSpanStyle

图片样式。

名称类型必填说明
size[DimensionDimension]

图片宽度和高度。默认值:size的默认值与objectFit的值有关,不同的objectFit值对应的size默认值也不同。objectFit的值为Cover时,图片高度为组件高度减去组件上下内边距,图片宽度为组件宽度减去组件左右内边距。

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

verticalAlignImageSpanAlignment

图片垂直对齐方式。

默认值:ImageSpanAlignment.BASELINE

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

objectFitImageFit

图片缩放类型。

默认值:ImageFit.Cover。

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

layoutStyle11+RichEditorLayoutStyle

图片布局风格。默认值:{"borderRadius":"","margin":""}

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

 (63)RichEditorSymbolSpanOptions

添加SymbolSpan组件的偏移位置和SymbolSpan组件样式信息。

名称类型必填说明
offsetnumber

添加组件的位置。省略时,添加到所有内容的最后。

当值小于0时,放在所有内容最前面;当值大于所有内容长度时,放在所有内容最后面。

styleRichEditorSymbolSpanStyle组件样式信息。省略时,使用系统默认样式信息。
(64)RichEditorSymbolSpanStyle

组件SymbolSpan样式信息。

名称类型必填说明
fontColorArray<ResourceColor>

设置SymbolSpan组件颜色。

默认值:不同渲染策略下默认值不同。

fontSizenumber | string | Resource

设置SymbolSpan组件大小,默认单位为fp。

默认值:跟随主题。

fontWeightnumber | FontWeight | string

设置SymbolSpan组件粗细。

number类型取值[100,900],取值间隔为100,默认为400,取值越大,字体越粗。

string类型仅支持number类型取值的字符串形式,例如“400”,以及“bold”、“bolder”、“lighter”、“regular” 、“medium”分别对应FontWeight中相应的枚举值。

默认值:FontWeight.Normal。

renderingStrategySymbolRenderingStrategy

设置SymbolSpan组件渲染策略。

默认值:SymbolRenderingStrategy.SINGLE。

effectStrategySymbolEffectStrategy

设置SymbolSpan组件动效策略。

默认值:SymbolEffectStrategy.NONE。

(65)RichEditorBuilderSpanOptions

添加图片的偏移位置和图片样式信息。

名称类型必填说明
offsetnumber添加builder的位置。省略或者为异常值时,添加到所有内容的最后。
 (66)RichEditorSpan

type RichEditorSpan = RichEditorImageSpanResult | RichEditorTextSpanResult

RichEditor span信息。

类型说明
RichEditorImageSpanResult后端返回的图片信息。
RichEditorTextSpanResult后端返回的文本样式信息。
(67)SelectionMenuOptions

菜单的选项。

名称类型必填说明
onAppearMenuOnAppearCallback

自定义选择菜单弹出时回调。

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

onDisappearCallback<void>

自定义选择菜单关闭时回调。

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

menuType13+MenuType

自定义选择菜单类型。

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

(68)PasteEvent

定义用户粘贴事件。

名称类型必填说明
preventDefaultCallback<void>阻止系统默认粘贴事件。
(69)CutEvent

 定义用户剪切事件。

名称类型必填说明
preventDefaultCallback<void>阻止系统默认剪切事件。
(70)CopyEvent

定义用户拷贝事件。

名称类型必填说明
preventDefaultCallback<void>阻止系统默认拷贝事件。
 (71)RichEditorGesture

 用户行为回调。

名称类型必填说明
onClickCallback<ClickEvent>

ClickEvent为用户点击事件。

点击完成时回调事件。

双击时,第一次点击触发回调事件。

onLongPressCallback<GestureEvent>

GestureEvent为用户长按事件。

长按完成时回调事件。

(72)KeyboardOptions

设置自定义键盘是否支持避让功能。

名称类型必填说明
supportAvoidanceboolean设置自定义键盘是否支持避让功能;默认值为false不支持避让,true为支持避让。
(73)SubmitCallback

type SubmitCallback = (enterKey: EnterKeyType, event: SubmitEvent) => void

软键盘按下回车键时的回调事件。

参数名类型必填说明
enterKeyEnterKeyType软键盘输入法回车键类型。具体类型见EnterKeyType枚举说明。
eventSubmitEvent当提交的时候,提供保持RichEditor编辑状态的方法。
(74)MenuOnAppearCallback

type MenuOnAppearCallback = (start: number, end: number) => void

自定义选择菜单弹出时触发的回调事件。

参数名类型必填说明
startnumber选中内容的起始位置。
endnumber选中内容的终止位置。
 (75)PasteEventCallback

type PasteEventCallback = (event?: PasteEvent) => void

完成粘贴前,触发回调。

参数名类型必填说明
eventPasteEvent定义用户粘贴事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值