当前位置: 首页 > article >正文

基础组件:

基础组件:

RichText

富文本组件,解析并显示HTML格式文本。

适用场景:

RichText组件适用于加载与显示一段HTML字符串,且不需要对显示效果进行较多自定义的应用场景。RichText组件仅支持有限的通用属性和事件。具体见属性与事件小节。

RichText组件底层复用了Web组件来提供基础能力,包括但不限于HTML页面的解析、渲染等。因此使用RichText组件需要遵循Web约束条件。常见典型约束如下:

移动设备的视口默认值大小为980px,默认值可以确保大部分网页在移动设备下可以正常浏览。如果RichText组件宽度低于这个值,content内部的HTML则可能会产生一个可以滑动的页面被RichText组件包裹。

不适用场景:

RichText组件不适用于对HTML字符串的显示效果进行较多自定义的应用场景。例如RichText组件不支持通过设置属性与事件,来修改背景颜色、字体颜色、字体大小、动态改变内容等。在这种情况下,推荐使用Web组件。

RichText组件比较消耗内存资源,而且有一些重复使用RichText组件的场景下,比如在List下循环重复使用RichText时,会出现卡顿、滑动响应慢等现象。在这种情况下,推荐使用RichEditor组件。

子组件

不包含子组件。

接口

RichText(content:string)

参数:

参数名参数类型必填参数描述
contentstring表示HTML格式的字符串。

示例代码:

@State data:string= '<h1 style="text-align: center;">h1标题</h1>' +
  '<h1 style="text-align: center;"><i>h1斜体</i></h1>' +
  '<h1 style="text-align: center;"><u>h1下划线</u></h1>' +
  '<h2 style="text-align: center;">h2标题</h2>' +
  '<h3 style="text-align: center;">h3标题</h3>' +
  '<p style="text-align: center;">p常规</p><hr/>' +
  '<div style="width: 500px;height: 500px;border: 1px solid;margin: 0 auto;">' +
  '<p style="font-size: 35px;text-align: center;font-weight: bold; color: rgb(24,78,228)">字体大小35px,行高45px</p>' +
  '<p style="background-color: #e5e5e5;line-height: 45px;font-size: 35px;text-indent: 2em;">' +
  '<p>这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字</p>';
  @Builder richTextTest(){
    RichText("<h1>富文本</h1>")
  }

ScrollBar

滚动条组件ScrollBar,用于配合可滚动组件使用,如List、Grid、Scroll。

子组件

可以包含单个子组件。

接口

ScrollBar(value: ScrollBarOptions)

参数:

参数名参数类型必填参数描述
valueScrollBarOptions滚动条组件参数。
ScrollBarOptions对象说明
参数名参数类型必填参数描述
scrollerScroller可滚动组件的控制器。用于与可滚动组件进行绑定。
directionScrollBarDirection

滚动条的方向,控制可滚动组件对应方向的滚动。

默认值:ScrollBarDirection.Vertical

stateBarState

滚动条状态。

默认值:BarState.Auto

ScrollBarDirection枚举说明
名称描述
Vertical纵向滚动条。
Horizontal横向滚动条。

 示列代码:

  sc:Scroller=new Scroller()
  @State lists:number[]=[1,2,3,4,5,6,7,8,9,0,12,13,24]
  @Builder scrollBarTest(){
    Stack({alignContent:Alignment.TopEnd}) {
     Scroll(this.sc){
       Column(){
         ForEach(this.lists,(i:number)=>{
           Row(){
             Text(i.toString())
           }.width('90%').height(200).border({style:BorderStyle.Solid,width:1,color:'red'})
         })
       }
     }
     ScrollBar({scroller:this.sc})
      Text().width(20).backgroundColor('red').height(100)
    }.width(20)
  }

Search

搜索框组件,适用于浏览器的搜索内容输入框等应用场景。

子组件

接口

Search(options?: { value?: string, placeholder?: ResourceStr, icon?: string, controller?: SearchController })

参数:

参数名参数类型必填参数描述
valuestring

设置当前显示的搜索文本内容。

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

placeholderResourceStr10+设置无输入时的提示文本。
iconstring

设置搜索图标路径,默认使用系统搜索图标。

说明:

icon的数据源支持本地图片和网络图片。

- 支持的图片格式包括png、jpg、bmp、svg、gif、pixelmap和heif。

- 支持Base64字符串。格式data:image/[png|jpeg|bmp|webp|heif];base64,[base64 data], 其中[base64 data]为Base64字符串数据。

如果与属性searchIcon同时设置,则searchIcon优先。

controllerSearchController设置Search组件控制器。

属性

除支持通用属性外,还支持以下属性:

searchButton

searchButton(value: string, option?: SearchButtonOptions)

设置搜索框末尾搜索按钮。

参数:

参数名类型必填说明
valuestring搜索框末尾搜索按钮文本内容。
optionSearchButtonOptions

配置搜索框文本样式。

默认值:

{

fontSize: '16fp',

color: '#ff3f97e9'

}

placeholderColor

placeholderColor(value: ResourceColor)

设置placeholder文本颜色。

参数:

参数名类型必填说明
valueResourceColor

placeholder文本颜色。

默认值:'#99182431'。

placeholderFont

placeholderFont(value?: Font)

设置placeholder文本样式,包括字体大小,字体粗细,字体族,字体风格。目前仅支持默认字体族。

参数:

参数名类型必填说明
valueFontplaceholder文本样式。

textFont

textFont(value?: Font)

设置搜索框内输入文本样式,包括字体大小,字体粗细,字体族,字体风格。目前仅支持默认字体族。

参数:

参数名类型必填说明
valueFont搜索框内输入文本样式。

textAlign

textAlign(value: TextAlign)

设置文本在搜索框中的对齐方式。目前支持的对齐方式有:Start、Center、End。

参数:

参数名类型必填说明
valueTextAlign

文本在搜索框中的对齐方式。

默认值:TextAlign.Start

searchIcon

searchIcon(value: IconOptions)

设置左侧搜索图标样式。

参数:

参数名类型必填说明
valueIconOptions

左侧搜索图标样式。

默认值:

{

size: '16vp',

color: '#99ffffff',

src: ' '

}

cancelButton

cancelButton(value: { style?: CancelButtonStyle, icon?: IconOptions })

设置右侧清除按钮样式。

参数:

参数名类型必填说明
value{ style:? CancelButtonStyle, icon:? IconOptions }

右侧清除按钮样式。

style:右侧图标显示状态。

icon:右侧图标。

默认值:

{

style:CancelButtonStyle.INPUT,

icon: {

size: '16vp',

color: '#99ffffff',

src: ' '

}

}

当style为CancelButtonStyle.CONSTANT时,默认显示清除样式。

fontColor

fontColor(value: ResourceColor)

设置输入文本的字体颜色。文本通用属性fontSize、fontStyle、fontWeight和fontFamily在textFont属性中设置。

参数:

参数名类型必填说明
valueResourceColor

输入文本的字体颜色。

默认值:'#FF182431'。

caretStyle

caretStyle(value: CaretStyle)

设置光标样式。

参数:

参数名类型必填说明
valueCaretStyle

光标样式。

默认值:

{

width: '1.5vp',

color: '#007DFF'

}

selectionMenuHidden

selectionMenuHidden(value: boolean)

设置长按输入框或者右键输入框时,是否弹出文本选择菜单。

参数:

参数名类型必填说明
valueboolean

长按输入框或者右键输入框时,是否弹出文本选择菜单。

默认值:false

customKeyboard

customKeyboard(value: CustomBuilder, options?: KeyboardOptions)

设置自定义键盘。

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

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

自定义键盘采用覆盖原始界面的方式呈现,不会对应用原始界面产生压缩或者上提。

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

默认在输入控件失去焦点时,关闭自定义键盘,开发者也可以通过stopEditing方法控制键盘关闭。

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

参数:

参数名类型必填说明
valueCustomBuilder自定义键盘。
options12+KeyboardOptions设置自定义键盘是否支持避让功能。
type

type(value: SearchType)

设置输入框类型。

参数:

参数名类型必填说明
valueSearchType

输入框类型。

默认值:SearchType.Normal

enterKeyType

enterKeyType(value: EnterKeyType)

设置输入法回车键类型。

参数:

参数名类型必填说明
valueEnterKeyType

输入法回车键类型。

默认值:EnterKeyType.Search

lineHeight

lineHeight(value: number | string | Resource)

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

参数:

参数名类型必填说明
valuenumber | string | Resource文本的文本行高。

decoration

decoration(value: TextDecorationOptions)

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

参数:

参数名类型必填说明
valueTextDecorationOptions

文本装饰线对象。

默认值:{

type: TextDecorationType.None,

color: Color.Black,

style: TextDecorationStyle.SOLID

}

letterSpacing12+

letterSpacing(value: number | string | Resource)

设置文本字符间距。设置该值为百分比时,按默认值显示。设置该值为0时,按默认值显示。

当取值为负值时,文字会发生压缩,负值过小时会将组件内容区大小压缩为0,导致无内容显示。

参数:

参数名类型必填说明
valuenumber | string | Resource文本字符间距。
selectedBackgroundColor

selectedBackgroundColor(value: ResourceColor)

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

参数:

参数名类型必填说明
valueResourceColor

文本选中底板颜色。

默认为20%不透明度。

事件

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

onSubmit

onSubmit(callback: (value: string) => void)

点击搜索图标、搜索按钮或者按下软键盘搜索按钮时触发该回调。

参数:

参数名类型必填说明
valuestring当前搜索框中输入的文本内容。

onChange

onChange(callback: (value: string) => void)

输入内容发生变化时,触发该回调。

参数:

参数名类型必填说明
valuestring当前搜索框中输入的文本内容。

onCopy

onCopy(callback: (value: string) => void)

长按搜索框弹出剪切板之后,点击剪切板的复制按钮触发该回调。

参数:

参数名类型必填说明
valuestring复制的文本内容。

onCut

onCut(callback: (value: string) => void)

长按搜索框弹出剪切板之后,点击剪切板的剪切按钮触发该回调。

参数:

参数名类型必填说明
valuestring剪切的文本内容。

onPaste

onPaste(callback: (value: string, event: PasteEvent) => void)

长按搜索框弹出剪切板之后,点击剪切板的粘贴按钮触发该回调。

参数:

参数名类型必填说明
valuestring粘贴的文本内容。
event11+PasteEvent用户自定义的粘贴事件。

onTextSelectionChange

onTextSelectionChange(callback: (selectionStart: number, selectionEnd: number) => void)

文本选择的位置发生变化时,触发该回调。

参数:

参数名类型必填说明
selectionStartnumber文本选择区域起始位置,文本框中文字的起始位置为0。
selectionEndnumber文本选择区域结束位置。

onContentScroll

onContentScroll(callback: (totalOffsetX: number, totalOffsetY: number) => void)

文本内容滚动时,触发该回调。

参数:

参数名类型必填说明
totalOffsetXnumber文本在内容区的横坐标偏移,单位px。
totalOffsetYnumber文本在内容区的纵坐标偏移,单位px。

onEditChange

onEditChange(callback: Callback< boolean >)

输入状态变化时,触发该回调。有光标时为编辑态,无光标时为非编辑态。isEditing为true表示正在输入。

参数:

参数名类型必填说明
isEditingCallback< boolean >为true表示正在输入。

onWillInsert

onWillInsert(callback: Callback<InsertValue, boolean>)

在将要输入时,触发该回调。

参数:

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

在将要输入时调用的回调。

在返回true时,表示正常插入,返回false时,表示不插入。

在预上屏操作时,该回调不触发。

仅支持系统输入法输入的场景。

onDidInsert

onDidInsert(callback: Callback<InsertValue>)

在输入完成时,触发该回调。

参数:

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

在输入完成时调用的回调。

仅支持系统输入法输入的场景。

onWillDelete

onWillDelete(callback: Callback<DeleteValue, boolean>)

在将要删除时,触发该回调。

参数:

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

在将要删除时调用的回调。

在返回true时,表示正常删除,返回false时,表示不删除。

在预上屏删除操作时,该回调不触发。

仅支持系统输入法输入的场景。

onDidDelete

onDidDelete(callback: Callback<DeleteValue>)

在删除完成时,触发该回调。

参数:

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

在删除完成时调用的回调。

仅支持系统输入法输入的场景。

SearchController

Search组件的控制器继承自TextContentControllerBase。

caretPosition

caretPosition(value: number): void

设置输入光标的位置。

参数:

参数名参数类型必填参数描述
valuenumber从字符串开始到光标所在位置的长度。

stopEditing

stopEditing(): void

退出编辑态。

setTextSelection

setTextSelection(selectionStart: number, selectionEnd: number, options?: SelectionOptions): void;

组件在获焦状态下,调用该接口设置文本选择区域并高亮显示,且只有在selectionStart小于selectionEnd时,文字才会被选取、高亮显示。

参数:

参数名参数类型必填参数描述
selectionStartnumber

文本选择区域起始位置,文本框中文字的起始位置为0。

当selectionStart小于0时、按照0处理;当selectionStart大于文字最大长度时、按照文字最大长度处理。

selectionEndnumber

文本选择区域结束位置。

当selectionEnd小于0时、按照0处理;当selectionEnd大于文字最大长度时、按照文字最大长度处理。

optionsSelectionOptions

选中文字时的配置。

默认值:MenuPolicy.DEFAULT。

Select

提供下拉选择菜单,可以让用户在多个选项之间选择。

子组件

接口

Select(options: Array<SelectOption>)

参数:

参数名参数类型必填参数描述
optionsArray<SelectOption>设置下拉选项。

SelectOption对象说明

参数名参数类型必填参数描述
valueResourceStr下拉选项内容。
iconResourceStr下拉选项图片。
symbolIcon12+SymbolGlyphModifier

下拉选项Symbol图片。

symbolIcon优先级高于icon。

属性

除支持通用属性外,还支持以下属性:

selected

selected(value: number | Resource)

设置下拉菜单初始选项的索引,第一项的索引为0。当不设置selected属性或设置异常值时,默认选择值为-1,菜单项不选中;当设置为undefined、null时,选中第一项。

参数:

参数名类型必填说明
valuenumber | Resource11+下拉菜单初始选项的索引。

value

value(value: ResourceStr)

设置下拉按钮本身的文本内容。当菜单选中时默认会替换为菜单项文本内容。

参数:

参数名类型必填说明
valueResourceStr11+下拉按钮本身的文本内容。

controlSize

controlSize(value: ControlSize)

设置Select组件的尺寸。

参数:

参数名类型必填说明
valueControlSize11+

Select组件的尺寸。

默认值:ControlSize.NORMAL

controlSize、width、height接口作用优先级:

1)如果开发者只设置了width和height,当文字大小设置的是比较大的值的时候,文字超出组件大小,且以省略号方式显示;

2)如果开发者只设置了controlSize,没有设置width和height,组件宽高自适应文字,文字不超出组件,并设置最小宽度minWidth和最小高度minHeight;

3)如果controlSize、width、height接口都设置了,width和height设置的值生效,但如果width和height设置的值小于controlSize设置的最小宽度minWidth和最小高度minHeight,width和height设置的值不生效,宽高仍保持controlSize设置的最小宽度minWidth和最小高度minHeight。

divider

divider(options: Optional<DividerOptions> | null)

设置分割线样式,不设置该属性则按“默认值”展示分割线。

参数:

参数名类型必填说明
optionsOptional<DividerOptions> | null

1.设置DividerOptions,则按设置的样式显示分割线。

默认值:

{

strokeWidth: '1px' ,

color: '#33182431'

}

2.设置为null时,不显示分割线。

3.strokeWidth设置过宽时,会覆盖文字。分割线会从每一个Item底部开始,同时向上向下画分割线。

4.startMargin和endMargin的默认值与不设置divider属性时的分割线样式保持一致。startMargin和endMargin的和与optionWidth的值相等时,不显示分割线。 startMargin和endMargin的和超过optionWidth的值时,按照默认样式显示分割线。

font

font(value: Font)

设置下拉按钮本身的文本样式。当size为0的时候,文本不显示,当size为负值的时候,文本的size按照默认值显示。

参数:

参数名类型必填说明
valueFont

下拉按钮本身的文本样式。

API Version 11及以前默认值:

{

size: '16fp',

weight: FontWeight.Medium

}

从API Version 12以后,

如果设置controlSize的值为:controlSize.SMALL,size默认值是'14fp',否则还是'16fp'。

fontColor

fontColor(value: ResourceColor)

设置下拉按钮本身的文本颜色。

参数:

参数名类型必填说明
valueResourceColor

下拉按钮本身的文本颜色。

默认值:'#E5182431'

selectedOptionBgColor

selectedOptionBgColor(value: ResourceColor)

设置下拉菜单选中项的背景色。

参数:

参数名类型必填说明
valueResourceColor

下拉菜单选中项的背景色。

默认值:'#33007DFF'

selectedOptionFont

selectedOptionFont(value: Font)

设置下拉菜单选中项的文本样式。当size为0的时候,文本不显示,当size为负值的时候,文本的size按照默认值显示。

参数:

参数名类型必填说明
valueFont

下拉菜单选中项的文本样式。

默认值:

{

size: '16fp',

weight: FontWeight.Regular

}

selectedOptionFontColor

selectedOptionFontColor(value: ResourceColor)

设置下拉菜单选中项的文本颜色。

参数:

参数名类型必填说明
valueResourceColor

下拉菜单选中项的文本颜色。

默认值:'#ff007dff'

optionBgColor

optionBgColor(value: ResourceColor)

设置下拉菜单项的背景色。

参数:

参数名类型必填说明
valueResourceColor

下拉菜单项的背景色。

默认值:'#ffffffff'

optionFont

optionFont(value: Font)

设置下拉菜单项的文本样式。当size为0的时候,文本不显示,当size为负值的时候,文本的size按照默认值显示。

参数:

参数名类型必填说明
valueFont

下拉菜单项的文本样式。

默认值:

{

size: '16fp',

weight: FontWeight.Regular

}

optionFontColor

optionFontColor(value: ResourceColor)

设置下拉菜单项的文本颜色。

参数:

参数名类型必填说明
valueResourceColor

下拉菜单项的文本颜色。

默认值:'#ff182431'

space

space(value: Length)

设置下拉菜单项的文本与箭头之间的间距。不支持设置百分比。设置为null、undefined,或者小于等于8的值,取默认值。

参数:

参数名类型必填说明
valueLength

下拉菜单项的文本与箭头之间的间距。

默认值:8

arrowPosition

arrowPosition(value: ArrowPosition)

设置下拉菜单项的文本与箭头之间的对齐方式。

参数:

参数名类型必填说明
valueArrowPosition

下拉菜单项的文本与箭头之间的对齐方式。

默认值:ArrowPosition.END

menuAlign

menuAlign(alignType: MenuAlignType, offset?: Offset)

设置下拉按钮与下拉菜单间的对齐方式。

参数:

参数名类型必填说明
alignTypeMenuAlignType

对齐方式类型。

默认值:MenuAlignType.START

offsetOffset

按照对齐类型对齐后,下拉菜单相对下拉按钮的偏移量。

默认值:{dx: 0, dy: 0}

optionWidth

optionWidth(value: Dimension | OptionWidthMode )

设置下拉菜单项的宽度,不支持设置百分比。OptionWidthMode类型为枚举类型,OptionWidthMode决定下拉菜单是否继承下拉按钮宽度。

当设置为undefined、null、负数时,属性不生效,菜单项宽度设为默认值,即菜单默认宽度为2栅格。

当菜单项设置宽度小于最小宽度56vp时,菜单宽度回弹至2栅格。正常值范围大于等于0。

参数:

参数名类型必填说明
valueDimension | OptionWidthMode下拉菜单项的宽度。

optionHeight

optionHeight(value: Dimension)

设置下拉菜单显示的最大高度,不支持设置百分比。下拉菜单的默认最大高度是屏幕可用高度的80%,设置的菜单最大高度不能超过默认最大高度。

当设置为undefined、null、负数与零时,属性不生效,下拉菜单最大高度设为默认值,即下拉菜单最大高度默认值为屏幕可用高度的80%。

正常值范围大于0。如果下拉菜单所有选项的实际高度没有设定的高度大,下拉菜单的高度按实际高度显示。

参数:

参数名类型必填说明
valueDimension下拉菜单显示的最大高度。

menuBackgroundColor

menuBackgroundColor(value: ResourceColor)

设置下拉菜单的背景色。

参数:

参数名类型必填说明
valueResourceColor

下拉菜单的背景色。

默认值:Color.Transparent

menuBackgroundBlurStyle

menuBackgroundBlurStyle(value: BlurStyle)

设置下拉菜单的背景模糊材质。

OptionWidthMode11+枚举说明

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

名称描述
FIT_CONTENT设置该值时,下拉菜单宽度按默认2栅格显示。
FIT_TRIGGER设置下拉菜单继承下拉按钮宽度。

ArrowPosition10+枚举说明

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

名称描述
END10+文字在前,箭头在后。
START10+箭头在前,文字在后。

MenuAlignType10+枚举说明

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

名称描述
START按照语言方向起始端对齐。
CENTER居中对齐。
END按照语言方向末端对齐。

MenuItemConfiguration12+对象说明

参数名类型必填说明
valueResourceStr下拉菜单项的文本内容。
iconResourceStr下拉菜单项的图片内容。
symbolIcon12+SymbolGlyphModifier下拉选项Symbol图片内容。
selectedboolean

下拉菜单项是否被选中。

默认值:false

indexnumber下拉菜单项的索引。
triggerSelect(index: number, value: string) => void

下拉菜单选中某一项的回调函数。

index: 选中菜单项的索引。

value: 选中菜单项的文本。

说明: index会赋值给事件onSelect回调中的索引参数; value会返回给Select组件显示,同时会赋值给事件onSelect回调中的文本参数。

事件

onSelect

onSelect(callback: (index: number, value: string) => void)

下拉菜单选中某一项的回调。

参数:

参数名类型必填说明
indexnumber选中项的索引。
valuestring选中项的值。

示例代码:

class MySelect implements ContentModifier<MenuItemConfiguration>{
  applyContent(): WrappedBuilder<[MenuItemConfiguration]> {
    return wrapBuilder(sel)
  }
}



@Builder function sel(config:MenuItemConfiguration){
   Row(){
     Text(config.index+''+config.value)
     if (config.symbolIcon){
       SymbolGlyph().attributeModifier(config.symbolIcon).fontSize(24).fontColor(['red'])
     }else {
       Image(config.icon).height(30)
     }
     if (config.selected){
       SymbolGlyph($r('sys.symbol.hand_thumbsup_fill')).fontColor(['#CDD8FF'])
     }
   }.width('80%').height(30)
  .backgroundColor(config.selected?Color.Orange:Color.Transparent)
  .onClick(()=>{
    config.triggerSelect(config.index,config.value.toString())
  })
}


@Builder jp(){
    Row().width('100%').height(300).backgroundColor('#89C2D1')
  }
  @Builder searchTest(){
    Search({
        value:'张三',placeholder:'搜输入搜索内容',controller:this.searchController
        // icon:'/img/t1.png'
    })
      .searchButton('搜索',{fontSize:18,fontColor:'red'})
      .placeholderColor('red')
      .placeholderFont({size:18,style:1,weight:700})
      .textFont({size:18,weight:900,style:1})
      .textAlign(TextAlign.Center)
      .searchIcon({size:20,src:$r('sys.symbol.circle_below_small_triangle'),color:'red'})
      .cancelButton({style:CancelButtonStyle.INPUT,
        icon:{size:20,color:'red',src:$r('sys.symbol.cinema')}})
      .fontColor('red')
      .caretStyle({color:'red',width:5})
      // .selectionMenuHidden(true)
      // .customKeyboard(this.jp(),{supportAvoidance:true})
      .type(SearchType.NORMAL)//搜索框类型
      .enterKeyType(EnterKeyType.Search)//回车键类型
      .lineHeight(-30)//行高
      .decoration({type:TextDecorationType.Underline,color:'blue',style:TextDecorationStyle.DOUBLE})// 下划线
      .letterSpacing(10)//字符间距
      .selectedBackgroundColor('red')//选中之后底板颜色
      .onSubmit((val)=>{//搜索按下
        console.log(val)
        //todo 跳转搜索结果
      })
      .onChange(val=>console.log(val))
      .onCopy(val=>console.log('复制的内容:'+val))
      .onCut(val=>console.log('剪切的内容:'+val))
      .onPaste(val=>console.log('粘贴的内容:'+val))
      .onTextSelectionChange((s,e)=>console.log(`开始下标:${s},结束下标:${e}`))
      .onContentScroll((x,y)=>console.log(`x:${x},y:${y}`))
      .onEditChange(isEdit=>console.log(isEdit?'输入中':'输入完成'))
      .onWillInsert((iv)=>(iv.insertValue==='.'?false:true))
      .onDidInsert(val=>console.log('输入的内容:'+val.insertValue))
      .onDidDelete(val=>console.log('删除的内容:'+val.deleteValue))
      .onWillDelete((iv)=>(iv.deleteValue==='三'?false:true))
       Row(){
         Button('光标').onClick(()=>{
          this.searchController.caretPosition(1)
      })
         Button('退出编辑').onClick(()=>{
           this.searchController.stopEditing()
         })
         Button('高亮').onClick(()=>{
           this.searchController.setTextSelection(0,10,{menuPolicy:MenuPolicy.DEFAULT})
         })
    }
  }
sym1:SymbolGlyphModifier=new SymbolGlyphModifier($r('sys.symbol.circle_on_circle_filled'))
  @Builder selectTest(){
     Select([
       {value:'北京',icon:$r('app.media.t7')},
       {value:'上海',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.circle_lefthalf_inset_filled'))},
       {value:'天津',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.circle_grid_2x2'))},
       {value:'石家庄',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.circle_below_plus_shield'))},
       {value:'海南',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.checkmark_circle'))},
       {value:'台湾',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.chevron_down_2_viewfinder'))},
     ])
       .height(20).width(280)
       .selected(1)
       .value('--地址--')
       .constraintSize({minWidth:120,maxWidth:200})
       .divider({strokeWidth:1,color:'#99D9EA',startMargin:10,endMargin:10})
       .fontColor('#FFC5D9')
       .font({size:18,style:FontStyle.Italic,weight:900})
       .selectedOptionBgColor('#E0E6FF')
       .selectedOptionFont({size:20})
       .selectedOptionFontColor(Color.White)
       .optionBgColor('#D7F8FF')
       .optionFontColor(Color.Black)
       .space(10)
       .arrowPosition(ArrowPosition.START)
       .menuAlign(MenuAlignType.END,{dx:10,dy:10})
       .optionWidth(200)
       .optionHeight(300)
       .menuBackgroundColor('#E8FFF8')
       .menuBackgroundBlurStyle(BlurStyle.Thin)
       .onSelect((index,val)=>{
         console.log(`索引:${index},值:${val}`)
       })
    Select([
      {value:'北京',icon:$r('app.media.t7')},
      {value:'上海',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.circle_lefthalf_inset_filled'))},
      {value:'天津',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.circle_grid_2x2'))},
      {value:'石家庄',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.circle_below_plus_shield'))},
      {value:'海南',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.checkmark_circle'))},
      {value:'台湾',symbolIcon:new SymbolGlyphModifier($r('sys.symbol.chevron_down_2_viewfinder'))},
    ])
      .value('--地址--')
      .menuItemContentModifier(new MySelect())

  }

Slider

滑动条组件,通常用于快速调节设置值,如音量调节、亮度调节等应用场景。

子组件

接口

Slider(options?: SliderOptions)

参数:

参数名类型必填描述
optionsSliderOptions配置滑动条的参数。

SliderOptions对象说明

名称类型必填说明
valuenumber

当前进度值。

默认值:与参数min的取值一致。

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

minnumber

设置最小值。

默认值:0

maxnumber

设置最大值。

默认值:100

说明:

min >= max异常情况,min取默认值0,max取默认值100。

value不在[min, max]范围之内,取min或者max,靠近min取min,靠近max取max。

stepnumber

设置Slider滑动步长。

默认值:1

取值范围:[0.01, max]

说明:

若设置的step值小于0或大于max值时,则按默认值显示。

styleSliderStyle

设置Slider的滑块与滑轨显示样式。

默认值:SliderStyle.OutSet

direction8+Axis

设置滑动条滑动方向为水平或竖直方向。

默认值:Axis.Horizontal

reverse8+boolean

设置滑动条取值范围是否反向,横向Slider默认为从左往右滑动,竖向Slider默认为从上往下滑动。

默认值:false

SliderStyle枚举说明

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

名称描述
OutSet

滑块在滑轨上。

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

InSet

滑块在滑轨内。

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

NONE12+无滑块

属性

支持除触摸热区以外的通用属性。

blockColor

blockColor(value: ResourceColor)

设置滑块的颜色。

当滑块形状设置为SliderBlockType.DEFAULT时,blockColor可设置默认圆形滑块颜色。

当滑块形状设置为SliderBlockType.IMAGE时,滑块无填充,设置blockColor不生效。

当滑块形状设置为SliderBlockType.SHAPE时,blockColor可设置自定义形状的填充颜色。

参数:

参数名类型必填说明
valueResourceColor

滑块的颜色。

默认值:'#ffffff'

trackColor

trackColor(value: ResourceColor | LinearGradient)

设置滑轨的背景颜色。

参数:

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

滑轨的背景颜色。

说明: 设置渐变色时,若颜色断点颜色值为非法值或者渐变色断点为空时,渐变色不起效果。

默认值:'#19182431'

该接口中的LinearGradient类型不支持在元服务中使用。

selectedColor

selectedColor(value: ResourceColor)

设置滑轨的已滑动部分颜色。

参数:

参数名类型必填说明
valueResourceColor

滑轨的已滑动部分颜色。

默认值:'#007dff'

showSteps

showSteps(value: boolean)

设置当前是否显示步长刻度值。

参数:

参数名类型必填说明
valueboolean

当前是否显示步长刻度值。

默认值:false

showTips

showTips(value: boolean, content?: ResourceStr)

设置滑动时是否显示气泡提示。

当direction的值为Axis.Horizontal时,tip显示在滑块上方,如果上方空间不够,则在下方显示。值为Axis.Vertical时,tip显示在滑块左边,如果左边空间不够,则在右边显示。不设置周边边距或者周边边距比较小时,tip会被截断。

tip的绘制区域为Slider自身节点的overlay。

参数:

参数名类型必填说明
valueboolean

滑动时是否显示气泡提示。

默认值:false

content10+ResourceStr气泡提示的文本内容,默认显示当前百分比。

trackThickness

trackThickness(value: Length)

设置滑轨的粗细。设置为小于等于0的值时,取默认值。

为保证滑块和滑轨的SliderStyle样式,blockSize跟随trackThickness同比例增减。

当style为SliderStyle.OutSet时,trackThickness :blockSize = 1 :4,当style为SliderStyle.InSet时,trackThickness :blockSize = 5 :3。

在变更trackThickness过程中,若trackThickness的大小或者blockSize的大小超过slider组件的width或者height(SliderStyle.OutSet时可能trackThickness没超过,但是blockSize超过了),取默认值。

参数:

参数名类型必填说明
valueLength

滑轨的粗细。

默认值:当参数style的值设置SliderStyle.OutSet 时为 4.0vp,SliderStyle.InSet时为20.0vp。

blockBorderColor

blockBorderColor(value: ResourceColor)

设置滑块描边颜色。

当滑块形状设置为SliderBlockType.DEFAULT时,blockBorderColor可设置默认圆形滑块描边颜色。

当滑块形状设置为SliderBlockType.IMAGE时,滑块无描边,设置blockBorderColor不生效。

当滑块形状设置为SliderBlockType.SHAPE时,blockBorderColor可设置自定义形状中线的颜色。

参数:

参数名类型必填说明
valueResourceColor

滑块描边颜色。

默认值:'#00000000'

blockBorderWidth

blockBorderWidth(value: Length)

设置滑块描边粗细。

当滑块形状设置为SliderBlockType.DEFAULT时,blockBorderWidth可设置默认圆形滑块描边粗细。

当滑块形状设置为SliderBlockType.IMAGE时,滑块无描边,设置blockBorderWidth不生效。

当滑块形状设置为SliderBlockType.SHAPE时,blockBorderWidth可设置自定义形状中线的粗细。

参数:

参数名类型必填说明
valueLength滑块描边粗细。

stepColor

stepColor(value: ResourceColor)

设置刻度颜色。

参数:

参数名类型必填说明
valueResourceColor

刻度颜色。

默认值:'#19182431'

trackBorderRadius

trackBorderRadius(value: Length)

设置底板圆角半径。

参数:

参数名类型必填说明
valueLength

底板圆角半径。

默认值:'2vp'

selectedBorderRadius

selectedBorderRadius(value: Dimension)

设置已滑动部分(高亮)圆角半径。

参数:

参数名类型必填说明
valueDimension

已选择部分圆角半径。

默认值:style值为SliderStyle.InSet或SliderStyle.OutSet时,跟随底板圆角;style值为SliderStyle.NONE时,为0。

blockSize

blockSize(value: SizeOptions)

设置滑块大小。

参数:

参数名类型必填说明
valueSizeOptions

滑块大小。

默认值:当参数style的值设置为SliderStyle.OutSet时为{width: 16, height: 16},当参数style的值设置为SliderStyle.InSet时为{width: 12, height: 12}。

当设置的blockSize的宽高值不相等时,取较小值的尺寸,当设置的宽高值中有一个或两个都小于等于0的时候,取默认值。

blockStyle

blockStyle(value: SliderBlockStyle)

设置滑块形状参数。

参数:

参数名类型必填说明
valueSliderBlockStyle

滑块形状参数。

默认值:SliderBlockType.DEFAULT,使用圆形滑块。

stepSize

stepSize(value: Length)

设置刻度大小(直径)。当值为0时,刻度点不显示,当值小于0时,取默认值。

参数:

参数名类型必填说明
valueLength

刻度大小(直径)。

默认值:'4vp'

sliderInteractionMode

sliderInteractionMode(value: SliderInteraction)

设置用户与滑动条组件交互方式。

参数:

参数名类型必填说明
valueSliderInteraction

用户与滑动条组件交互方式。

默认值:SliderInteraction.SLIDE_AND_CLICK。

minResponsiveDistance

minResponsiveDistance(value: number)

设置滑动响应的最小距离。

参数:

参数名类型必填说明
valuenumber

设置滑动响应的最小距离,滑动超过此距离后才响应使滑块滑动。

说明:

单位与参数min和max一致。

当value小于0、大于MAX-MIN或非法值时,取默认值。

默认值:0。

contentModifier

contentModifier(modifier: ContentModifier<SliderConfiguration>)

定制Slider内容区的方法。

参数:

参数名类型必填说明
modifierContentModifier<SliderConfiguration>

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

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

slideRange

slideRange(value: SlideRange)

设置有效滑动区间。

参数:

参数名类型必填说明
valueSlideRange设置有效滑动区间

事件

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

onChange

onChange(callback: (value: number, mode: SliderChangeMode) => void)

Slider拖动或点击时触发事件回调。

Begin和End状态当手势点击时都会触发,Moving和Click状态当value值发生变化时触发。

当连贯动作为拖动动作时,不触发Click状态。

参数:

参数名类型必填说明
valuenumber当前滑动进度值,变化范围为对应步长steps数组。若返回值有小数,可使用number.toFixed()方法将数据处理为预期的精度。
modeSliderChangeMode事件触发的相关状态值。

示例代码:

class MySlider implements ContentModifier<SliderConfiguration>{
  applyContent(): WrappedBuilder<[SliderConfiguration]> {
    return wrapBuilder(sl)

    }
    showSlider:boolean=true
    sliderChangeMode:number=0
    constructor(showSlider: boolean,sliderChangeMode:number) {
    this.showSlider = showSlider
    this.sliderChangeMode = sliderChangeMode
  }
}



@Builder function sl(config:SliderConfiguration){
  Column(){
    Progress({value:config.value,type:ProgressType.Ring})
     Button('增加').onClick(()=>{
       config.value+=10
       config.triggerChange(config.value,0)
     })
    Button('添加').onClick(()=>{
      config.value+=10
      config.triggerChange(config.value,1)
    })
  }
}



@Builder sliderTest(){
    Slider({
      value:30,min:0,max:100,step:10,style:SliderStyle.InSet,direction:Axis.Horizontal,
      reverse:false,
    })
      .blockColor('#F5D9F2')//滑块的颜色
      .blockSize({height:20,width:20})
      .blockBorderColor('#CADBE6')
      .blockBorderWidth(1)
      // .blockStyle({type:SliderBlockType.IMAGE,image:$r('app.media.t7')})
        .blockStyle({type:SliderBlockType.IMAGE,image:$r('app.media.t7')})
      // .blockStyle({ type: SliderBlockType.SHAPE, shape: new Path({ commands: 'M60 60 M30 30 L15 56 L45 56 Z' }) })
      .trackColor(Color.Orange)
      .selectedColor('#D4E6DF')
      .showSteps(true)
      .showTips(true)
      .trackThickness(50)
      .stepColor(Color.Brown)
      .trackBorderRadius(10)
      .selectedBorderRadius(10)
      .stepSize(8)
      .sliderInteractionMode(SliderInteraction.SLIDE_AND_CLICK )
      .minResponsiveDistance(20)
      .slideRange({from:10,to:50,})
      .onChange((v,m)=>{
        console.log(`当前值${v}`)
        if (m==0) {
          console.log('按下')
        }else if (m==1){
          console.log('移动')
        }else if (m==2){
          console.log('弹起')
        }else if (m==3){
          console.log('点击')
        }
      })
    Slider({
      value:30,min:0,max:100,step:10
    })
      .contentModifier(new MySlider(true,0))

  }








Span

作为Text、ContainerSpan组件的子组件,用于显示行内文本的组件。

子组件

接口

Span(value: string | Resource)

参数:

参数名参数类型必填参数描述
valuestring | Resource文本内容。

属性

属性继承自BaseSpan,通用属性方法仅支持文本通用。

decoration

decoration(value: DecorationStyleInterface)

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

参数:

参数名类型必填描述
valueDecorationStyleInterface12+

文本装饰线样式对象。

默认值:

{

type: TextDecorationType.None,

color: Color.Black,

style: TextDecorationStyle.SOLID

}

说明:

style参数不支持卡片能力。

letterSpacing

letterSpacing(value: number | string)

设置文本字符间距。取值小于0,字符聚集重叠,取值大于0且随着数值变大,字符间距越来越大,稀疏分布。

参数:

参数名类型必填描述
valuenumber | string文本字符间距。

textCase

textCase(value: TextCase)

设置文本大小写。

参数:

参数名类型必填描述
valueTextCase

文本大小写。

默认值:TextCase.Normal

lineHeight

lineHeight(value: Length)

设置文本行高。

参数:

参数名类型必填描述
valueLength文本行高。

font

font(value: Font)

设置文本样式。包括字体大小、字体粗细、字体族和字体风格。

参数:

参数名类型必填描述
valueFont文本样式。

textShadow

textShadow(value: ShadowOptions | Array<ShadowOptions>)

设置文字阴影效果。该接口支持以数组形式入参,实现多重文字阴影。不支持fill字段, 不支持智能取色模式。

参数:

参数名类型必填描述
valueShadowOptions | Array<ShadowOptions>文字阴影效果。

事件

通用事件仅支持点击事件。

textBackgroundStyle

textBackgroundStyle(style: TextBackgroundStyle)

设置背景样式。作为ContainerSpan的子组件时可以继承它的此属性值,优先使用其自身的此属性。

参数:

参数名类型必填描述
styleTextBackgroundStyle

背景样式。

默认值:

{

color: Color.Transparent,

radius: 0

}

baselineOffset

baselineOffset(value: LengthMetrics)

设置Span基线的偏移量。此属性与父组件的baselineOffset是共存的。

参数:

参数名类型必填描述
valueLengthMetrics

设置Span基线的偏移量,设置该值为百分比时,按默认值显示。

正数内容向上偏移,负数向下偏移。

默认值:0

在ImageSpan中,设置为非0时会导致设置verticalAlign失效。

示例代码:

@Builder spanTest(){
    Text(){
      Span('文本子组件1')
        .decoration({style:TextDecorationStyle.SOLID,type:TextDecorationType.Overline,color:'red'})
      Span('文本子组件2')
        .letterSpacing(10)
      Span('AbcDef').textCase(TextCase.UpperCase)
        .textBackgroundStyle({
          color:Color.Orange,radius:0,
        })
        .baselineOffset(LengthMetrics.vp(10))
      Span('文本组件4').lineHeight(40)
        .font({size:20,style:FontStyle.Italic})
        .fontColor('#AACCE6')
        .textShadow({radius:10,offsetX:10,offsetY:10,color:'#E6CED5'})
    }
  }

Stepper

步骤导航器组件,适用于引导用户按照步骤完成任务的导航场景。

子组件

仅能包含子组件StepperItem。

接口

Stepper(value?: { index?: number })

参数:

参数名参数类型必填参数描述
value{ index?: number }

设置步骤导航器当前显示StepperItem的索引值。

默认值:0

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

属性

StepperItem

用作Stepper组件的页面子组件。

子组件

支持单个子组件。

接口

StepperItem()

属性

prevLabel

prevLabel(value: string)

设置左侧文本按钮内容,第一页没有左侧文本按钮,当步骤导航器大于一页时,除第一页外默认值都为“返回”。

参数:

参数名类型必填说明
valuestring左侧文本按钮内容。

nextLabel

nextLabel(value: string)

设置右侧文本按钮内容,最后一页默认值为“开始”,其余页默认值为“下一步”。

status

status(value?: ItemState)

设置步骤导航器nextLabel的显示状态。

参数:

参数名类型必填说明
valueItemState

步骤导航器nextLabel的显示状态。

默认值:ItemState.Norm

ItemState枚举说明
名称描述
Normal正常状态,右侧文本按钮正常显示,可点击进入下一个StepperItem。
Disabled不可用状态,右侧文本按钮灰度显示,不可点击进入下一个StepperItem。
Waiting等待状态,右侧文本按钮不显示,显示等待进度条,不可点击进入下一个StepperItem。
Skip跳过状态,右侧文本按钮默认显示“跳过”,此时可在Stepper的onSkip回调中自定义相关逻辑。
onSkip

onSkip(callback: () => void)

当前显示的StepperItem状态为ItemState.Skip时,nextLabel被点击时触发该回调。

onNext

onNext(callback: (index: number, pendingIndex: number) => void)

点击StepperItem的nextLabel切换下一步骤时,当前页面不为步骤导航器最后一个StepperItem且ItemState属性为Normal时,触发该回调。

参数:

参数名类型必填说明
indexnumber当前步骤页索引值。
pendingIndexnumber下一步骤页索引值。

onPrevious

onPrevious(callback: (index: number, pendingIndex: number) => void)

点击StepperItem的prevLabel切换上一步骤时触发该回调。

参数:

参数名类型必填说明
indexnumber当前步骤页索引值。
pendingIndexnumber上一步骤页索引值。
onChange

onChange(callback: (prevIndex: number, index: number) => void)

点击当前StepperItem的prevLabel进行步骤切换时触发该回调;或点击当前StepperItem的nextLabel,当前页面不为步骤导航器最后一个StepperItem且ItemState属性为Normal时,触发该回调。

参数:

参数名类型必填说明
prevIndexnumber切换前的步骤页索引值。
indexnumber切换后的步骤页(前一页或者下一页)索引值。

示例代码:

@State selectIndex:number=0
  @Builder stepperTest(){
    Stepper({index:this.selectIndex}){
      StepperItem(){
        Column().height('90%').width('100%').backgroundColor(Color.Orange)
      }
      .nextLabel('下一页')

      StepperItem(){
        Column().height('90%').width('100%').backgroundColor(Color.Pink)
      }
      .prevLabel('上一页')
      // .nextLabel('下一页')
      .status(ItemState.Skip)
      StepperItem(){
        Column().height('90%').width('100%').backgroundColor('#E6E5D1')
      }
      .prevLabel('上一页')
      .nextLabel('完成')
    }
    .onClick(()=>{
      console.log('完成注册')
    })
    .onSkip(()=>{
      console.log('页面跳过')
      this.selectIndex=2
    })
    .onNext((index,pendingIndex)=>{
      console.log(`当前是第${index+1}页,下一页${pendingIndex+1}页`)
    })
    .onPrevious((index,pendingIndex)=>{
      console.log(`当前是第${index+1}页,上一页${pendingIndex+1}页`)
    })
  }

SymbolGlyph

显示图标小符号的组件。

子组件

不支持子组件。

接口

SymbolGlyph(value: Resource)

参数:

参数名参数类型必填参数描述
valueResourceSymbolGlyph组件的资源名,如 $r('sys.symbol.ohos_wifi')。

属性

支持通用属性,不支持文本通用属性,仅支持以下特有属性:

fontColor

fontColor(value: Array<ResourceColor>)

设置SymbolGlyph组件颜色。

参数:

参数名类型必填说明
valueArray<ResourceColor>

SymbolGlyph组件颜色。

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

fontSize

fontSize(value: number | string | Resource)

设置SymbolGlyph组件大小。

参数:

参数名类型必填说明
valuenumber | string | Resource

SymbolGlyph组件大小。

默认值:系统默认值。

fontWeight

fontWeight(value: number | FontWeight | string)

设置SymbolGlyph组件粗细。number类型取值[100,900],取值间隔为100,默认为400,取值越大,字体越粗。string类型仅支持number类型取值的字符串形式,例如“400”,以及“bold”、“bolder”、“lighter”、“regular” 、“medium”分别对应FontWeight中相应的枚举值。

sys.symbol.ohos_lungs图标不支持设置fontWeight。

参数:

参数名类型必填说明
valuenumber | string | FontWeight

SymbolGlyph组件粗细。

默认值:FontWeight.Normal

renderingStrategy

renderingStrategy(value: SymbolRenderingStrategy)

设置SymbolGlyph组件渲染策略。$r('sys.symbol.ohos_*')中引用的资源仅ohos_folder_badge_plus支持分层与多色模式。

参数:

参数名类型必填说明
valueSymbolRenderingStrategy

SymbolGlyph组件渲染策略。

默认值:SymbolRenderingStrategy.SINGLE

effectStrategy

effectStrategy(value: SymbolEffectStrategy)

设置SymbolGlyph组件动效策略。$r('sys.symbol.ohos_*')中引用的资源仅ohos_wifi支持层级动效模式。

参数:

参数名类型必填说明
valueSymbolEffectStrategy

SymbolGlyph组件动效策略。

默认值:SymbolEffectStrategy.NONE

symbolEffect

symbolEffect(symbolEffect: SymbolEffect, isActive?: boolean)

设置SymbolGlyph组件动效策略及播放状态。

参数:

参数名类型必填说明
symbolEffect

SymbolEffect|ScaleSymbolEffect|HierarchicalSymbolEffect|

AppearSymbolEffect|DisappearSymbolEffect|BounceSymbolEffect|

ReplaceSymbolEffect|PulseSymbolEffect

SymbolGlyph组件动效策略。

默认值:SymbolEffect

isActiveboolean

SymbolGlyph组件动效播放状态。

默认值:false

symbolEffect

symbolEffect(symbolEffect: SymbolEffect, triggerValue?: number)

设置SymbolGlyph组件动效策略及播放触发器。

参数:

参数名类型必填说明
symbolEffect

SymbolEffect|ScaleSymbolEffect|HierarchicalSymbolEffect|

AppearSymbolEffect|DisappearSymbolEffect|BounceSymbolEffect|

ReplaceSymbolEffect|PulseSymbolEffect

SymbolGlyph组件动效策略。

默认值:SymbolEffect

triggerValuenumber

SymbolGlyph组件动效播放触发器,在数值变更时触发动效。

如果首次不希望触发动效,设置-1。

SymbolEffect

constructor

constructor()

SymbolEffect的构造函数,无动效。

ScaleSymbolEffect

constructor12+

constructor(scope?: EffectScope, direction?: EffectDirection)

ScaleSymbolEffect的构造函数,缩放动效。

参数:

参数名参数类型必填参数描述
scopeEffectScope

动效范围。

默认值:EffectScope.LAYER

directionEffectDirection

动效方向。

默认值:EffectDirection.DOWN

属性
名称参数类型描述
scopeEffectScope

动效范围。

默认值:EffectScope.LAYER

directionEffectDirection

动效方向。

默认值:EffectDirection.DOWN

HierarchicalSymbolEffect12+

constructor12+

constructor(fillStyle?: EffectFillStyle)

HierarchicalSymbolEffect的构造函数,层级动效。

参数:

参数名参数类型必填参数描述
fillStyleEffectFillStyle

动效模式。

默认值:EffectFillStyle.CUMULATIVE

属性

名称类型必填说明
fillStyleEffectFillStyle

动效模式。

默认值:EffectFillStyle.CUMULATIVE

示例代码:

@State eff:boolean=false
  @Builder symbolGlyphTest(){
     SymbolGlyph($r('sys.symbol.ohos_trash_circle'))
       .fontSize(30)
       .fontWeight(FontWeight.Bolder)
       .fontColor(['red'])
    SymbolGlyph($r('sys.symbol.chevron_right_circle')).fontSize(30)
      .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_COLOR)
      .fontColor(['red','blue'])
    SymbolGlyph($r('sys.symbol.hand_thumbsdown_fill')).fontSize(30)

      .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_OPACITY)
      .fontColor(['red'])
    SymbolGlyph($r('sys.symbol.wifi')).fontSize(40)
      // .effectStrategy(SymbolEffectStrategy.HIERARCHICAL)
      // .symbolEffect(SymbolEffectStrategy.SCALE,4)
      // .symbolEffect(new ScaleSymbolEffect(EffectScope.LAYER),this.eff)
      .symbolEffect(new HierarchicalSymbolEffect(),this.eff)
    Button('播放动效').onClick(()=>{
      this.eff=true
      setTimeout(()=>{this.eff=false},500)

    })
  }

 

TextArea

多行文本输入框组件,当输入的文本内容超过组件宽度时会自动换行显示。

高度未设置时,组件无默认高度,自适应内容高度。宽度未设置时,默认撑满最大宽度。

子组件

接口

TextArea(value?: TextAreaOptions)

参数:

参数名类型必填说明
valueTextAreaOptionsTextArea组件参数。

TextAreaOptions对象说明

参数名参数类型必填参数描述
placeholderResourceStr

设置无输入时的提示文本。输入内容后,提示文本不显示。

仅设置placeholder属性时,手柄依然跟随拖动,手柄松开后光标停留在文字开头位置。

textResourceStr

设置输入框当前的文本内容。

建议通过onChange事件将状态变量与文本实时绑定,

避免组件刷新时TextArea中的文本内容异常。

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

controller8+TextAreaController设置TextArea控制器。

属性

除支持通用属性和文本通用属性的fontColor、fontSize、fontStyle、fontWeight、fontFamily外,还支持以下属性:

placeholderColor

placeholderColor(value: ResourceColor)

设置placeholder文本颜色。

参数:

参数名类型必填说明
valueResourceColor

placeholder文本颜色。

默认值:跟随主题。

placeholderFont

placeholderFont(value: Font)

设置placeholder文本样式,包括字体大小,字体粗细,字体族,字体风格。目前仅支持默认字体族。

参数:

参数名类型必填说明
valueFontplaceholder文本样式。

textAlign

textAlign(value: TextAlign)

设置文本在输入框中的水平对齐方式。

支持TextAlign.Start、TextAlign.Center和TextAlign.End。

可通过align属性控制文本段落在垂直方向上的位置,此组件中不可通过align属性控制文本段落在水平方向上的位置,即align属性中Alignment.TopStart、Alignment.Top、Alignment.TopEnd效果相同,控制内容在顶部,Alignment.Start、Alignment.Center、Alignment.End效果相同,控制内容垂直居中,Alignment.BottomStart、Alignment.Bottom、Alignment.BottomEnd效果相同,控制内容在底部。

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

参数:

参数名类型必填说明
valueTextAlign

文本在输入框中的水平对齐方式。

默认值:TextAlign.Start

caretColor

caretColor(value: ResourceColor)

设置输入框光标颜色。

参数:

参数名类型必填说明
valueResourceColor

输入框光标颜色。

默认值:'#007DFF'

copyOption9+

copyOption(value: CopyOptions)

设置输入的文本是否可复制。设置CopyOptions.None时,当前TextArea中的文字无法被复制或剪切,仅支持粘贴。

copyOption对于拖拽,只限制是否选中,不涉及拖拽范围。

参数:

参数名类型必填说明
valueCopyOptions

输入的文本是否可复制。

默认值:CopyOptions.LocalDevice,支持设备内复制。

maxLength10+

maxLength(value: number)

设置文本的最大输入字符数。默认不设置最大输入字符数限制。到达文本最大字符限制,将无法继续输入字符,同时边框变为红色。

参数:

参数名类型必填说明
valuenumber文本的最大输入字符数。

showCounter10+

showCounter(value: boolean, options?: InputCounterOptions)

设置当通过InputCounterOptions输入的字符数超过阈值时显示计数器。

参数value为true时,才能设置options,文本框开启计数下标功能,需要配合maxlength(设置最大字符限制)一起使用。字符计数器显示的效果是当前输入字符数/最大可输入字符数。

当输入字符数大于最大字符数乘百分比值时,显示字符计数器。如果用户设置计数器时不设置InputCounterOptions,那么当前输入字符数达到最大字符数时,边框和计数器下标将变为红色。用户同时设置参数value为true和InputCounterOptions,当thresholdPercentage数值在有效区间内,且输入字符数超过最大字符数时,边框和计数器下标将变为红色,框体抖动。highlightBorder设置为false,则不显示红色边框,计数器默认显示红色边框。内联模式下字符计数器不显示。

参数:

参数名类型必填说明
valueboolean是否显示计数器。
options11+InputCounterOptions计数器的百分比。

style10+

style(value: TextContentStyle)

设置文本框多态样式,内联输入风格只支持TextAreaType.Normal类型。

参数:

参数名类型必填说明
valueTextContentStyle

文本框多态样式。

默认值:TextContentStyle.DEFAULT

enableKeyboardOnFocus10+

enableKeyboardOnFocus(value: boolean)

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

参数:

参数名类型必填说明
valueboolean

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

默认值:true

selectionMenuHidden10+

selectionMenuHidden(value: boolean)

设置长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单。

参数:

参数名类型必填说明
valueboolean

长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单。

默认值:false

barState10+

barState(value: BarState)

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

参数:

参数名类型必填说明
valueBarState

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

默认值:BarState.Auto

maxLines10+

maxLines(value: number)

配置textOverflow一起使用时,maxlines为可显示行数,超出截断;未配置textOverflow时,内联模式获焦状态下内容超出maxlines时,文本可滚动显示,内联模式非获焦状态下不生效maxlines,非内联模式按行截断。

参数:

参数名类型必填说明
valuenumber

内联输入风格编辑态时文本可显示的最大行数。

默认值:3,非内联模式下,默认值为+∞,不限制最大行数。

取值范围:(0, +∞)

type11+

type(value: TextAreaType)

设置输入框类型。

参数:

参数名类型必填说明
valueTextAreaType

输入框类型。

默认值:TextAreaType.Normal

enableAutoFill12+

enableAutoFill(value: boolean)

设置是否启用自动填充。

参数:

参数名类型必填说明
valueboolean

是否启用自动填充。

true表示启用,false表示不启用。

默认值:true

contentType12+

contentType(contentType: ContentType)

设置自动填充类型。

参数:

参数名类型必填说明
contentTypeContentType自动填充类型。

 

wordBreak12+

wordBreak(value: WordBreak)

设置文本断行规则。该属性对placeholder文本无效。

参数:

参数名类型必填说明
valueWordBreak

文本断行规则。

默认值:WordBreak.BRE

textOverflow12+

textOverflow(value: TextOverflow)

设置文本超长时的显示方式。

内联模式,主动配置textoverflow才会生效按maxline截断效果,不配置时,默认不截断。

文本截断是按字截断。例如,英文以单词为最小单位进行截断,若需要以字母为单位进行截断,wordBreak属性可设置为WordBreak.BREAK_ALL。

当overflow设置为TextOverflow.None、TextOverflow.Clip、TextOverflow.Ellipsis时,需配合maxLines使用,单独设置不生效。设置TextOverflow.None与TextOverflow。Clip效果一样。

参数:

参数名类型必填说明
valueTextOverflow

文本超长时的显示方式。

默认值:TextOverflow.Clip

 

lineBreakStrategy12+

lineBreakStrategy(strategy: LineBreakStrategy)

设置折行规则。该属性在wordBreak不等于breakAll的时候生效,不支持连词符。

参数:

参数名类型必填说明
strategyLineBreakStrategy

文本的折行规则。

默认值:LineBreakStrategy.GREEDY

事件

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

onChange

onChange(callback: (value: string) => void)

输入内容发生变化时,触发该回调。

TextClock

TextClock组件通过文本将当前系统时间显示在设备上。支持不同时区的时间显示,最高精度到秒级。

子组件

接口

TextClock(options?: { timeZoneOffset?: number, controller?: TextClockController })

参数:

参数名参数类型必填参数描述
timeZoneOffsetnumber

设置时区偏移量。

取值范围为[-14, 12],表示东十二区到西十二区,其中负值表示东时区,正值表示西时区,比如东八区为-8。设置值为该取值范围内的浮点数时会进行取整,舍弃小数部分。

对横跨国际日界线的国家或地区,用-13(UTC+13)和-14(UTC+14)来保证整个国家或者区域处在相同的时间,当设置的值不在取值范围内时,将使用当前系统的时区偏移量。

默认值:当前系统的时区偏移量

从API version 11开始,设置值为{ 9.5, 3.5, -3.5, -4.5, -5.5, -5.75, -6.5, -9.5, -10.5, -12.75 }集合中的浮点数时不再进行取整。

controllerTextClockController绑定一个控制器,用来控制文本时钟的状态。

属性

除支持通用属性和文本通用属性的fontColor、fontSize、fontStyle、fontWeight、fontFamily外,还支持以下属性:

format

format(value: string)

设置显示时间格式,如“yyyy/mm/dd”、“yyyy-mm-dd”。

y:年(yyyy表示完整年份,yy表示年份后两位)

M:月(若想使用01月则使用MM)

d:日(若想使用01日则使用dd)

E:星期(若想使用星期六则使用EEEE,若想使用周六则使用E、EE、EEE)H:小时(24小时制) h:小时(12小时制)

m:分钟

s:秒

SS:厘秒(format中S个数<3,全部按厘秒处理)

SSS:毫秒(format中S个数>=3,全部按毫秒处理)

a:上午/下午(当设置小时制式为H时,该参数不生效)

日期间隔符:"年月日"、“/”、"-"、"."(可以自定义间隔符样式,间隔符不可以为字母,汉字则作为间隔符处理)

允许自行拼接组合显示格式,即:年、月、日、星期、时、分、秒、毫秒可拆分为子元素,可自行排布组合。时间更新频率最高为一秒一次,不建议单独设置厘秒和毫秒格式。

当设置无效字母时(非上述字母被认为是无效字母),该字母会被忽略。如果format全是无效字母时,显示格式跟随系统语言和系统小时制。例如系统语言为中文时,12小时制显示格式为yyyy/MM/dd aa hh:mm:ss.SSS,24小时制显示格式为yyyy/MM/dd HH:mm:ss.SSS。

若format为空或者undefined,则使用默认值。

参数:

参数名类型必填说明
valuestring显示时间格式。

以下是format输入的格式样式及对应的显示效果:

输入格式显示效果
yyyy年M月d日 EEEE2023年2月4日 星期六
yyyy年M月d日2023年2月4日
M月d日 EEEE2月4日 星期六
M月d日2月4日
MM/dd/yyyy02/04/2023
EEEE MM月dd日星期六 02月04日
yyyy(完整年份)2023年
yy(年份后两位)23年
MM(完整月份)02月
M(月份)2月
dd(完整日期)04日
d(日期)4日
EEEE(完整星期)星期六
E、EE、EEE(简写星期)周六
yyyy年M月d日2023年2月4日
yyyy/M/d2023/2/4
yyyy-M-d2023-2-4
yyyy.M.d2023.2.4
HH:mm:ss(时:分:秒)17:00:04
aa hh:mm:ss(时:分:秒)上午 5:00:04
hh:mm:ss(时:分:秒)5:00:04
HH:mm(时:分)17:00
aa hh:mm(时:分)上午 5:00
hh:mm(时:分)5:00
mm:ss(分:秒)00:04
mm:ss.SS(分:秒.厘秒)00:04.91
mm:ss.SSS(分:秒.毫秒)00:04.536
hh:mm:ss aa5:00:04 上午
HH17

示例代码:

 

tc:TextAreaController=new TextAreaController()
  clock:TextClockController=new TextClockController()
  @Builder textAreaTest(){
  TextArea({placeholder:'请输入个人简介',text:'我叫张三...',controller:this.tc})
    .height(300).width('90%')
    .placeholderColor('#E7DDD9')
    .placeholderFont({size:18,weight:FontWeight.Bolder,style:FontStyle.Italic})
    .textAlign(TextAlign.Center)
    .caretColor(Color.Pink)
    .caretStyle({color:'#E5FFFB',width:3})
    .copyOption(CopyOptions.LocalDevice)
    .maxLength(150)
    .border({style:BorderStyle.Solid,width:1,color:Color.Gray})
    .showCounter(true,{thresholdPercentage:40,highlightBorder:true})
    // .style(TextContentStyle.INLINE)
    .enableKeyboardOnFocus(true)
    .selectionMenuHidden(false)
    .barState(BarState.Auto)
    // .maxLength(4)
    // .textOverflow(TextOverflow.Ellipsis)
    .type(TextAreaType.NORMAL)
    .enableAutoFill(true)//启用填充
    .contentType(ContentType.USER_NAME)
    .wordBreak(WordBreak.BREAK_ALL)
    .lineBreakStrategy(LineBreakStrategy.GREEDY)



    TextClock({timeZoneOffset:-8,controller:this.clock})
      .format('yyyy年M月d日 EEEE  aa hh:mm:ss')
      .onClick(()=>{
        this.clock.stop()
      })
      .contentModifier(new MyTextClock())
  }


http://www.kler.cn/a/453461.html

相关文章:

  • HarmonyOS NEXT 实战之元服务:静态案例效果---查看国内航班服务
  • 以太网帧结构
  • 【C++】19___set / multiset 容器
  • MySQL 数据”丢失”事件之 binlog 解析应用
  • Python数据处理——re库与pydantic的使用总结与实战,处理采集到的思科ASA防火墙设备信息
  • 深度学习中batch_size
  • MySQL为什么选择使用B+树作为索引结构?
  • 如何使用React,透传各类组件能力/属性?
  • python脚本:批量提取excel数据
  • WebRTC服务质量(10)- Pacer机制(02) RoundRobinPacketQueue
  • Unity自定义Inspector属性名特性以及特性自定义布局问题
  • 散户应该持有哪些代币?
  • 计算机网络 (8)物理层的传输方式
  • HashMap源码深度解析(JDK 1.8)
  • 鸿蒙项目云捐助第二十二讲云捐助项目物联网IoT鸿蒙端的代码实现
  • C 实现植物大战僵尸(一)
  • Mysql 查询性能调优总结
  • PyQt5 学习方法之悟道
  • FPGA实时红外相机采集输出系统,提供工程源码和技术支持
  • 大模型Weekly|月之暗面发布Kimi视觉思考模型 k1;谷歌发布最新视频生成模型Veo 2
  • HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据权限与基础数据
  • SpringCloudAlibaba技术栈-Dubbo
  • kubernetes Gateway API-部署和基础配置
  • 【gulp】gulp 的基本使用
  • 从数据仓库到数据中台再到数据飞轮:电信行业的数据技术进化史
  • 质数生成函数、质数判断备份