基础组件:
基础组件:
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)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
content | string | 是 | 表示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)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
value | ScrollBarOptions | 是 | 滚动条组件参数。 |
ScrollBarOptions对象说明
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
scroller | Scroller | 是 | 可滚动组件的控制器。用于与可滚动组件进行绑定。 |
direction | ScrollBarDirection | 否 | 滚动条的方向,控制可滚动组件对应方向的滚动。 默认值:ScrollBarDirection.Vertical |
state | BarState | 否 | 滚动条状态。 默认值: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 })
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
value | string | 否 | 设置当前显示的搜索文本内容。 从API version 10开始,该参数支持$$双向绑定变量。 |
placeholder | ResourceStr10+ | 否 | 设置无输入时的提示文本。 |
icon | string | 否 | 设置搜索图标路径,默认使用系统搜索图标。 说明: icon的数据源支持本地图片和网络图片。 - 支持的图片格式包括png、jpg、bmp、svg、gif、pixelmap和heif。 - 支持Base64字符串。格式data:image/[png|jpeg|bmp|webp|heif];base64,[base64 data], 其中[base64 data]为Base64字符串数据。 如果与属性searchIcon同时设置,则searchIcon优先。 |
controller | SearchController | 否 | 设置Search组件控制器。 |
属性
除支持通用属性外,还支持以下属性:
searchButton
searchButton(value: string, option?: SearchButtonOptions)
设置搜索框末尾搜索按钮。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | string | 是 | 搜索框末尾搜索按钮文本内容。 |
option | SearchButtonOptions | 否 | 配置搜索框文本样式。 默认值: { fontSize: '16fp', color: '#ff3f97e9' } |
placeholderColor
placeholderColor(value: ResourceColor)
设置placeholder文本颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | placeholder文本颜色。 默认值:'#99182431'。 |
placeholderFont
placeholderFont(value?: Font)
设置placeholder文本样式,包括字体大小,字体粗细,字体族,字体风格。目前仅支持默认字体族。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Font | 否 | placeholder文本样式。 |
textFont
textFont(value?: Font)
设置搜索框内输入文本样式,包括字体大小,字体粗细,字体族,字体风格。目前仅支持默认字体族。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Font | 否 | 搜索框内输入文本样式。 |
textAlign
textAlign(value: TextAlign)
设置文本在搜索框中的对齐方式。目前支持的对齐方式有:Start、Center、End。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | TextAlign | 是 | 文本在搜索框中的对齐方式。 默认值:TextAlign.Start |
searchIcon
searchIcon(value: IconOptions)
设置左侧搜索图标样式。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | IconOptions | 是 | 左侧搜索图标样式。 默认值: { 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属性中设置。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 输入文本的字体颜色。 默认值:'#FF182431'。 |
caretStyle
caretStyle(value: CaretStyle)
设置光标样式。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | CaretStyle | 是 | 光标样式。 默认值: { width: '1.5vp', color: '#007DFF' } |
selectionMenuHidden
selectionMenuHidden(value: boolean)
设置长按输入框或者右键输入框时,是否弹出文本选择菜单。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | boolean | 是 | 长按输入框或者右键输入框时,是否弹出文本选择菜单。 默认值:false |
customKeyboard
customKeyboard(value: CustomBuilder, options?: KeyboardOptions)
设置自定义键盘。
当设置自定义键盘时,输入框激活后不会打开系统输入法,而是加载指定的自定义组件。
自定义键盘的高度可以通过自定义组件根节点的height属性设置,宽度不可设置,使用系统默认值。
自定义键盘采用覆盖原始界面的方式呈现,不会对应用原始界面产生压缩或者上提。
自定义键盘无法获取焦点,但是会拦截手势事件。
默认在输入控件失去焦点时,关闭自定义键盘,开发者也可以通过stopEditing方法控制键盘关闭。
如果设备支持拍摄输入,设置自定义键盘后,该输入框会不支持拍摄输入。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | CustomBuilder | 是 | 自定义键盘。 |
options12+ | KeyboardOptions | 否 | 设置自定义键盘是否支持避让功能。 |
type
type(value: SearchType)
设置输入框类型。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | SearchType | 是 | 输入框类型。 默认值:SearchType.Normal |
enterKeyType
enterKeyType(value: EnterKeyType)
设置输入法回车键类型。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | EnterKeyType | 是 | 输入法回车键类型。 默认值:EnterKeyType.Search |
lineHeight
lineHeight(value: number | string | Resource)
设置文本的文本行高,设置值不大于0时,不限制文本行高,自适应字体大小,number类型时单位为fp。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | string | Resource | 是 | 文本的文本行高。 |
decoration
decoration(value: TextDecorationOptions)
设置文本装饰线类型样式及其颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | TextDecorationOptions | 是 | 文本装饰线对象。 默认值:{ type: TextDecorationType.None, color: Color.Black, style: TextDecorationStyle.SOLID } |
letterSpacing12+
letterSpacing(value: number | string | Resource)
设置文本字符间距。设置该值为百分比时,按默认值显示。设置该值为0时,按默认值显示。
当取值为负值时,文字会发生压缩,负值过小时会将组件内容区大小压缩为0,导致无内容显示。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | string | Resource | 是 | 文本字符间距。 |
selectedBackgroundColor
selectedBackgroundColor(value: ResourceColor)
设置文本选中底板颜色。如果未设置不透明度,默认为20%不透明度。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 文本选中底板颜色。 默认为20%不透明度。 |
事件
除支持通用事件外,还支持以下事件:
onSubmit
onSubmit(callback: (value: string) => void)
点击搜索图标、搜索按钮或者按下软键盘搜索按钮时触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | string | 是 | 当前搜索框中输入的文本内容。 |
onChange
onChange(callback: (value: string) => void)
输入内容发生变化时,触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | string | 是 | 当前搜索框中输入的文本内容。 |
onCopy
onCopy(callback: (value: string) => void)
长按搜索框弹出剪切板之后,点击剪切板的复制按钮触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | string | 是 | 复制的文本内容。 |
onCut
onCut(callback: (value: string) => void)
长按搜索框弹出剪切板之后,点击剪切板的剪切按钮触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | string | 是 | 剪切的文本内容。 |
onPaste
onPaste(callback: (value: string, event: PasteEvent) => void)
长按搜索框弹出剪切板之后,点击剪切板的粘贴按钮触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | string | 是 | 粘贴的文本内容。 |
event11+ | PasteEvent | 否 | 用户自定义的粘贴事件。 |
onTextSelectionChange
onTextSelectionChange(callback: (selectionStart: number, selectionEnd: number) => void)
文本选择的位置发生变化时,触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
selectionStart | number | 是 | 文本选择区域起始位置,文本框中文字的起始位置为0。 |
selectionEnd | number | 否 | 文本选择区域结束位置。 |
onContentScroll
onContentScroll(callback: (totalOffsetX: number, totalOffsetY: number) => void)
文本内容滚动时,触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
totalOffsetX | number | 是 | 文本在内容区的横坐标偏移,单位px。 |
totalOffsetY | number | 否 | 文本在内容区的纵坐标偏移,单位px。 |
onEditChange
onEditChange(callback: Callback< boolean >)
输入状态变化时,触发该回调。有光标时为编辑态,无光标时为非编辑态。isEditing为true表示正在输入。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
isEditing | Callback< boolean > | 是 | 为true表示正在输入。 |
onWillInsert
onWillInsert(callback: Callback<InsertValue, boolean>)
在将要输入时,触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | Callback<InsertValue, boolean> | 是 | 在将要输入时调用的回调。 在返回true时,表示正常插入,返回false时,表示不插入。 在预上屏操作时,该回调不触发。 仅支持系统输入法输入的场景。 |
onDidInsert
onDidInsert(callback: Callback<InsertValue>)
在输入完成时,触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | Callback<InsertValue> | 是 | 在输入完成时调用的回调。 仅支持系统输入法输入的场景。 |
onWillDelete
onWillDelete(callback: Callback<DeleteValue, boolean>)
在将要删除时,触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | Callback<DeleteValue, boolean> | 是 | 在将要删除时调用的回调。 在返回true时,表示正常删除,返回false时,表示不删除。 在预上屏删除操作时,该回调不触发。 仅支持系统输入法输入的场景。 |
onDidDelete
onDidDelete(callback: Callback<DeleteValue>)
在删除完成时,触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | Callback<DeleteValue> | 是 | 在删除完成时调用的回调。 仅支持系统输入法输入的场景。 |
SearchController
Search组件的控制器继承自TextContentControllerBase。
caretPosition
caretPosition(value: number): void
设置输入光标的位置。
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
value | number | 是 | 从字符串开始到光标所在位置的长度。 |
stopEditing
stopEditing(): void
退出编辑态。
setTextSelection
setTextSelection(selectionStart: number, selectionEnd: number, options?: SelectionOptions): void;
组件在获焦状态下,调用该接口设置文本选择区域并高亮显示,且只有在selectionStart小于selectionEnd时,文字才会被选取、高亮显示。
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
selectionStart | number | 是 | 文本选择区域起始位置,文本框中文字的起始位置为0。 当selectionStart小于0时、按照0处理;当selectionStart大于文字最大长度时、按照文字最大长度处理。 |
selectionEnd | number | 是 | 文本选择区域结束位置。 当selectionEnd小于0时、按照0处理;当selectionEnd大于文字最大长度时、按照文字最大长度处理。 |
options | SelectionOptions | 否 | 选中文字时的配置。 默认值:MenuPolicy.DEFAULT。 |
Select
提供下拉选择菜单,可以让用户在多个选项之间选择。
子组件
无
接口
Select(options: Array<SelectOption>)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
options | Array<SelectOption> | 是 | 设置下拉选项。 |
SelectOption对象说明
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
value | ResourceStr | 是 | 下拉选项内容。 |
icon | ResourceStr | 否 | 下拉选项图片。 |
symbolIcon12+ | SymbolGlyphModifier | 否 | 下拉选项Symbol图片。 symbolIcon优先级高于icon。 |
属性
除支持通用属性外,还支持以下属性:
selected
selected(value: number | Resource)
设置下拉菜单初始选项的索引,第一项的索引为0。当不设置selected属性或设置异常值时,默认选择值为-1,菜单项不选中;当设置为undefined、null时,选中第一项。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | Resource11+ | 是 | 下拉菜单初始选项的索引。 |
value
value(value: ResourceStr)
设置下拉按钮本身的文本内容。当菜单选中时默认会替换为菜单项文本内容。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceStr11+ | 是 | 下拉按钮本身的文本内容。 |
controlSize
controlSize(value: ControlSize)
设置Select组件的尺寸。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ControlSize11+ | 是 | 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)
设置分割线样式,不设置该属性则按“默认值”展示分割线。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | Optional<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按照默认值显示。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Font | 是 | 下拉按钮本身的文本样式。 API Version 11及以前默认值: { size: '16fp', weight: FontWeight.Medium } 从API Version 12以后, 如果设置controlSize的值为:controlSize.SMALL,size默认值是'14fp',否则还是'16fp'。 |
fontColor
fontColor(value: ResourceColor)
设置下拉按钮本身的文本颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 下拉按钮本身的文本颜色。 默认值:'#E5182431' |
selectedOptionBgColor
selectedOptionBgColor(value: ResourceColor)
设置下拉菜单选中项的背景色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 下拉菜单选中项的背景色。 默认值:'#33007DFF' |
selectedOptionFont
selectedOptionFont(value: Font)
设置下拉菜单选中项的文本样式。当size为0的时候,文本不显示,当size为负值的时候,文本的size按照默认值显示。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Font | 是 | 下拉菜单选中项的文本样式。 默认值: { size: '16fp', weight: FontWeight.Regular } |
selectedOptionFontColor
selectedOptionFontColor(value: ResourceColor)
设置下拉菜单选中项的文本颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 下拉菜单选中项的文本颜色。 默认值:'#ff007dff' |
optionBgColor
optionBgColor(value: ResourceColor)
设置下拉菜单项的背景色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 下拉菜单项的背景色。 默认值:'#ffffffff' |
optionFont
optionFont(value: Font)
设置下拉菜单项的文本样式。当size为0的时候,文本不显示,当size为负值的时候,文本的size按照默认值显示。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Font | 是 | 下拉菜单项的文本样式。 默认值: { size: '16fp', weight: FontWeight.Regular } |
optionFontColor
optionFontColor(value: ResourceColor)
设置下拉菜单项的文本颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 下拉菜单项的文本颜色。 默认值:'#ff182431' |
space
space(value: Length)
设置下拉菜单项的文本与箭头之间的间距。不支持设置百分比。设置为null、undefined,或者小于等于8的值,取默认值。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Length | 是 | 下拉菜单项的文本与箭头之间的间距。 默认值:8 |
arrowPosition
arrowPosition(value: ArrowPosition)
设置下拉菜单项的文本与箭头之间的对齐方式。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ArrowPosition | 是 | 下拉菜单项的文本与箭头之间的对齐方式。 默认值:ArrowPosition.END |
menuAlign
menuAlign(alignType: MenuAlignType, offset?: Offset)
设置下拉按钮与下拉菜单间的对齐方式。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
alignType | MenuAlignType | 是 | 对齐方式类型。 默认值:MenuAlignType.START |
offset | Offset | 否 | 按照对齐类型对齐后,下拉菜单相对下拉按钮的偏移量。 默认值:{dx: 0, dy: 0} |
optionWidth
optionWidth(value: Dimension | OptionWidthMode )
设置下拉菜单项的宽度,不支持设置百分比。OptionWidthMode类型为枚举类型,OptionWidthMode决定下拉菜单是否继承下拉按钮宽度。
当设置为undefined、null、负数时,属性不生效,菜单项宽度设为默认值,即菜单默认宽度为2栅格。
当菜单项设置宽度小于最小宽度56vp时,菜单宽度回弹至2栅格。正常值范围大于等于0。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Dimension | OptionWidthMode | 是 | 下拉菜单项的宽度。 |
optionHeight
optionHeight(value: Dimension)
设置下拉菜单显示的最大高度,不支持设置百分比。下拉菜单的默认最大高度是屏幕可用高度的80%,设置的菜单最大高度不能超过默认最大高度。
当设置为undefined、null、负数与零时,属性不生效,下拉菜单最大高度设为默认值,即下拉菜单最大高度默认值为屏幕可用高度的80%。
正常值范围大于0。如果下拉菜单所有选项的实际高度没有设定的高度大,下拉菜单的高度按实际高度显示。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Dimension | 是 | 下拉菜单显示的最大高度。 |
menuBackgroundColor
menuBackgroundColor(value: ResourceColor)
设置下拉菜单的背景色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 下拉菜单的背景色。 默认值: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+对象说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceStr | 是 | 下拉菜单项的文本内容。 |
icon | ResourceStr | 否 | 下拉菜单项的图片内容。 |
symbolIcon12+ | SymbolGlyphModifier | 否 | 下拉选项Symbol图片内容。 |
selected | boolean | 是 | 下拉菜单项是否被选中。 默认值:false |
index | number | 是 | 下拉菜单项的索引。 |
triggerSelect | (index: number, value: string) => void | 是 | 下拉菜单选中某一项的回调函数。 index: 选中菜单项的索引。 value: 选中菜单项的文本。 说明: index会赋值给事件onSelect回调中的索引参数; value会返回给Select组件显示,同时会赋值给事件onSelect回调中的文本参数。 |
事件
onSelect
onSelect(callback: (index: number, value: string) => void)
下拉菜单选中某一项的回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 选中项的索引。 |
value | string | 是 | 选中项的值。 |
示例代码:
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)
参数:
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
options | SliderOptions | 否 | 配置滑动条的参数。 |
SliderOptions对象说明
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | 否 | 当前进度值。 默认值:与参数min的取值一致。 从API version 10开始,该参数支持$$双向绑定变量。 |
min | number | 否 | 设置最小值。 默认值:0 |
max | number | 否 | 设置最大值。 默认值:100 说明: min >= max异常情况,min取默认值0,max取默认值100。 value不在[min, max]范围之内,取min或者max,靠近min取min,靠近max取max。 |
step | number | 否 | 设置Slider滑动步长。 默认值:1 取值范围:[0.01, max] 说明: 若设置的step值小于0或大于max值时,则按默认值显示。 |
style | SliderStyle | 否 | 设置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可设置自定义形状的填充颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 滑块的颜色。 默认值:'#ffffff' |
trackColor
trackColor(value: ResourceColor | LinearGradient)
设置滑轨的背景颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | LinearGradient12+ | 是 | 滑轨的背景颜色。 说明: 设置渐变色时,若颜色断点颜色值为非法值或者渐变色断点为空时,渐变色不起效果。 默认值:'#19182431' 该接口中的LinearGradient类型不支持在元服务中使用。 |
selectedColor
selectedColor(value: ResourceColor)
设置滑轨的已滑动部分颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 滑轨的已滑动部分颜色。 默认值:'#007dff' |
showSteps
showSteps(value: boolean)
设置当前是否显示步长刻度值。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | boolean | 是 | 当前是否显示步长刻度值。 默认值:false |
showTips
showTips(value: boolean, content?: ResourceStr)
设置滑动时是否显示气泡提示。
当direction的值为Axis.Horizontal时,tip显示在滑块上方,如果上方空间不够,则在下方显示。值为Axis.Vertical时,tip显示在滑块左边,如果左边空间不够,则在右边显示。不设置周边边距或者周边边距比较小时,tip会被截断。
tip的绘制区域为Slider自身节点的overlay。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | boolean | 是 | 滑动时是否显示气泡提示。 默认值: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超过了),取默认值。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Length | 是 | 滑轨的粗细。 默认值:当参数style的值设置SliderStyle.OutSet 时为 4.0vp,SliderStyle.InSet时为20.0vp。 |
blockBorderColor
blockBorderColor(value: ResourceColor)
设置滑块描边颜色。
当滑块形状设置为SliderBlockType.DEFAULT时,blockBorderColor可设置默认圆形滑块描边颜色。
当滑块形状设置为SliderBlockType.IMAGE时,滑块无描边,设置blockBorderColor不生效。
当滑块形状设置为SliderBlockType.SHAPE时,blockBorderColor可设置自定义形状中线的颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 滑块描边颜色。 默认值:'#00000000' |
blockBorderWidth
blockBorderWidth(value: Length)
设置滑块描边粗细。
当滑块形状设置为SliderBlockType.DEFAULT时,blockBorderWidth可设置默认圆形滑块描边粗细。
当滑块形状设置为SliderBlockType.IMAGE时,滑块无描边,设置blockBorderWidth不生效。
当滑块形状设置为SliderBlockType.SHAPE时,blockBorderWidth可设置自定义形状中线的粗细。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Length | 是 | 滑块描边粗细。 |
stepColor
stepColor(value: ResourceColor)
设置刻度颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 刻度颜色。 默认值:'#19182431' |
trackBorderRadius
trackBorderRadius(value: Length)
设置底板圆角半径。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Length | 是 | 底板圆角半径。 默认值:'2vp' |
selectedBorderRadius
selectedBorderRadius(value: Dimension)
设置已滑动部分(高亮)圆角半径。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Dimension | 是 | 已选择部分圆角半径。 默认值:style值为SliderStyle.InSet或SliderStyle.OutSet时,跟随底板圆角;style值为SliderStyle.NONE时,为0。 |
blockSize
blockSize(value: SizeOptions)
设置滑块大小。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | SizeOptions | 是 | 滑块大小。 默认值:当参数style的值设置为SliderStyle.OutSet时为{width: 16, height: 16},当参数style的值设置为SliderStyle.InSet时为{width: 12, height: 12}。 当设置的blockSize的宽高值不相等时,取较小值的尺寸,当设置的宽高值中有一个或两个都小于等于0的时候,取默认值。 |
blockStyle
blockStyle(value: SliderBlockStyle)
设置滑块形状参数。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | SliderBlockStyle | 是 | 滑块形状参数。 默认值:SliderBlockType.DEFAULT,使用圆形滑块。 |
stepSize
stepSize(value: Length)
设置刻度大小(直径)。当值为0时,刻度点不显示,当值小于0时,取默认值。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Length | 是 | 刻度大小(直径)。 默认值:'4vp' |
sliderInteractionMode
sliderInteractionMode(value: SliderInteraction)
设置用户与滑动条组件交互方式。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | SliderInteraction | 是 | 用户与滑动条组件交互方式。 默认值:SliderInteraction.SLIDE_AND_CLICK。 |
minResponsiveDistance
minResponsiveDistance(value: number)
设置滑动响应的最小距离。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | 是 | 设置滑动响应的最小距离,滑动超过此距离后才响应使滑块滑动。 说明: 单位与参数min和max一致。 当value小于0、大于MAX-MIN或非法值时,取默认值。 默认值:0。 |
contentModifier
contentModifier(modifier: ContentModifier<SliderConfiguration>)
定制Slider内容区的方法。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
modifier | ContentModifier<SliderConfiguration> | 是 | 在Slider组件上,定制内容区的方法。 modifier: 内容修改器,开发者需要自定义class实现ContentModifier接口。 |
slideRange
slideRange(value: SlideRange)
设置有效滑动区间。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | SlideRange | 是 | 设置有效滑动区间 |
事件
支持通用事件外,还支持以下事件:
onChange
onChange(callback: (value: number, mode: SliderChangeMode) => void)
Slider拖动或点击时触发事件回调。
Begin和End状态当手势点击时都会触发,Moving和Click状态当value值发生变化时触发。
当连贯动作为拖动动作时,不触发Click状态。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | 是 | 当前滑动进度值,变化范围为对应步长steps数组。若返回值有小数,可使用number.toFixed()方法将数据处理为预期的精度。 |
mode | SliderChangeMode | 是 | 事件触发的相关状态值。 |
示例代码:
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)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
value | string | Resource | 是 | 文本内容。 |
属性
属性继承自BaseSpan,通用属性方法仅支持文本通用。
decoration
decoration(value: DecorationStyleInterface)
设置文本装饰线样式及其颜色。
参数:
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
value | DecorationStyleInterface12+ | 是 | 文本装饰线样式对象。 默认值: { type: TextDecorationType.None, color: Color.Black, style: TextDecorationStyle.SOLID } 说明: style参数不支持卡片能力。 |
letterSpacing
letterSpacing(value: number | string)
设置文本字符间距。取值小于0,字符聚集重叠,取值大于0且随着数值变大,字符间距越来越大,稀疏分布。
参数:
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
value | number | string | 是 | 文本字符间距。 |
textCase
textCase(value: TextCase)
设置文本大小写。
参数:
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
value | TextCase | 是 | 文本大小写。 默认值:TextCase.Normal |
lineHeight
lineHeight(value: Length)
设置文本行高。
参数:
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
value | Length | 是 | 文本行高。 |
font
font(value: Font)
设置文本样式。包括字体大小、字体粗细、字体族和字体风格。
参数:
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
value | Font | 是 | 文本样式。 |
textShadow
textShadow(value: ShadowOptions | Array<ShadowOptions>)
设置文字阴影效果。该接口支持以数组形式入参,实现多重文字阴影。不支持fill字段, 不支持智能取色模式。
参数:
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
value | ShadowOptions | Array<ShadowOptions> | 是 | 文字阴影效果。 |
事件
通用事件仅支持点击事件。
textBackgroundStyle
textBackgroundStyle(style: TextBackgroundStyle)
设置背景样式。作为ContainerSpan的子组件时可以继承它的此属性值,优先使用其自身的此属性。
参数:
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
style | TextBackgroundStyle | 是 | 背景样式。 默认值: { color: Color.Transparent, radius: 0 } |
baselineOffset
baselineOffset(value: LengthMetrics)
设置Span基线的偏移量。此属性与父组件的baselineOffset是共存的。
参数:
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
value | LengthMetrics | 是 | 设置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)
设置左侧文本按钮内容,第一页没有左侧文本按钮,当步骤导航器大于一页时,除第一页外默认值都为“返回”。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | string | 是 | 左侧文本按钮内容。 |
nextLabel
nextLabel(value: string)
设置右侧文本按钮内容,最后一页默认值为“开始”,其余页默认值为“下一步”。
status
status(value?: ItemState)
设置步骤导航器nextLabel的显示状态。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ItemState | 否 | 步骤导航器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时,触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 当前步骤页索引值。 |
pendingIndex | number | 是 | 下一步骤页索引值。 |
onPrevious
onPrevious(callback: (index: number, pendingIndex: number) => void)
点击StepperItem的prevLabel切换上一步骤时触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 当前步骤页索引值。 |
pendingIndex | number | 是 | 上一步骤页索引值。 |
onChange
onChange(callback: (prevIndex: number, index: number) => void)
点击当前StepperItem的prevLabel进行步骤切换时触发该回调;或点击当前StepperItem的nextLabel,当前页面不为步骤导航器最后一个StepperItem且ItemState属性为Normal时,触发该回调。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
prevIndex | number | 是 | 切换前的步骤页索引值。 |
index | number | 是 | 切换后的步骤页(前一页或者下一页)索引值。 |
示例代码:
@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)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
value | Resource | 是 | SymbolGlyph组件的资源名,如 $r('sys.symbol.ohos_wifi')。 |
属性
支持通用属性,不支持文本通用属性,仅支持以下特有属性:
fontColor
fontColor(value: Array<ResourceColor>)
设置SymbolGlyph组件颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Array<ResourceColor> | 是 | SymbolGlyph组件颜色。 默认值:不同渲染策略下默认值不同。 |
fontSize
fontSize(value: number | string | Resource)
设置SymbolGlyph组件大小。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | 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。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | string | FontWeight | 是 | SymbolGlyph组件粗细。 默认值:FontWeight.Normal |
renderingStrategy
renderingStrategy(value: SymbolRenderingStrategy)
设置SymbolGlyph组件渲染策略。$r('sys.symbol.ohos_*')中引用的资源仅ohos_folder_badge_plus支持分层与多色模式。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | SymbolRenderingStrategy | 是 | SymbolGlyph组件渲染策略。 默认值:SymbolRenderingStrategy.SINGLE |
effectStrategy
effectStrategy(value: SymbolEffectStrategy)
设置SymbolGlyph组件动效策略。$r('sys.symbol.ohos_*')中引用的资源仅ohos_wifi支持层级动效模式。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | SymbolEffectStrategy | 是 | SymbolGlyph组件动效策略。 默认值:SymbolEffectStrategy.NONE |
symbolEffect
symbolEffect(symbolEffect: SymbolEffect, isActive?: boolean)
设置SymbolGlyph组件动效策略及播放状态。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
symbolEffect | SymbolEffect|ScaleSymbolEffect|HierarchicalSymbolEffect| AppearSymbolEffect|DisappearSymbolEffect|BounceSymbolEffect| ReplaceSymbolEffect|PulseSymbolEffect | 是 | SymbolGlyph组件动效策略。 默认值:SymbolEffect |
isActive | boolean | 否 | SymbolGlyph组件动效播放状态。 默认值:false |
symbolEffect
symbolEffect(symbolEffect: SymbolEffect, triggerValue?: number)
设置SymbolGlyph组件动效策略及播放触发器。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
symbolEffect | SymbolEffect|ScaleSymbolEffect|HierarchicalSymbolEffect| AppearSymbolEffect|DisappearSymbolEffect|BounceSymbolEffect| ReplaceSymbolEffect|PulseSymbolEffect | 是 | SymbolGlyph组件动效策略。 默认值:SymbolEffect |
triggerValue | number | 否 | SymbolGlyph组件动效播放触发器,在数值变更时触发动效。 如果首次不希望触发动效,设置-1。 |
SymbolEffect
constructor
constructor()
SymbolEffect的构造函数,无动效。
ScaleSymbolEffect
constructor12+
constructor(scope?: EffectScope, direction?: EffectDirection)
ScaleSymbolEffect的构造函数,缩放动效。
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
scope | EffectScope | 否 | 动效范围。 默认值:EffectScope.LAYER |
direction | EffectDirection | 否 | 动效方向。 默认值:EffectDirection.DOWN |
属性
名称 | 参数类型 | 描述 |
---|---|---|
scope | EffectScope | 动效范围。 默认值:EffectScope.LAYER |
direction | EffectDirection | 动效方向。 默认值:EffectDirection.DOWN |
HierarchicalSymbolEffect12+
constructor12+
constructor(fillStyle?: EffectFillStyle)
HierarchicalSymbolEffect的构造函数,层级动效。
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
fillStyle | EffectFillStyle | 否 | 动效模式。 默认值:EffectFillStyle.CUMULATIVE |
属性
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
fillStyle | EffectFillStyle | 否 | 动效模式。 默认值: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)
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | TextAreaOptions | 否 | TextArea组件参数。 |
TextAreaOptions对象说明
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
placeholder | ResourceStr | 否 | 设置无输入时的提示文本。输入内容后,提示文本不显示。 仅设置placeholder属性时,手柄依然跟随拖动,手柄松开后光标停留在文字开头位置。 |
text | ResourceStr | 否 | 设置输入框当前的文本内容。 建议通过onChange事件将状态变量与文本实时绑定, 避免组件刷新时TextArea中的文本内容异常。 从API version 10开始,该参数支持$$双向绑定变量。 |
controller8+ | TextAreaController | 否 | 设置TextArea控制器。 |
属性
除支持通用属性和文本通用属性的fontColor、fontSize、fontStyle、fontWeight、fontFamily外,还支持以下属性:
placeholderColor
placeholderColor(value: ResourceColor)
设置placeholder文本颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | placeholder文本颜色。 默认值:跟随主题。 |
placeholderFont
placeholderFont(value: Font)
设置placeholder文本样式,包括字体大小,字体粗细,字体族,字体风格。目前仅支持默认字体族。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | Font | 是 | placeholder文本样式。 |
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时,最后一行文本不参与两端对齐,为水平对齐首部效果。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | TextAlign | 是 | 文本在输入框中的水平对齐方式。 默认值:TextAlign.Start |
caretColor
caretColor(value: ResourceColor)
设置输入框光标颜色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | ResourceColor | 是 | 输入框光标颜色。 默认值:'#007DFF' |
copyOption9+
copyOption(value: CopyOptions)
设置输入的文本是否可复制。设置CopyOptions.None时,当前TextArea中的文字无法被复制或剪切,仅支持粘贴。
copyOption对于拖拽,只限制是否选中,不涉及拖拽范围。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | CopyOptions | 是 | 输入的文本是否可复制。 默认值:CopyOptions.LocalDevice,支持设备内复制。 |
maxLength10+
maxLength(value: number)
设置文本的最大输入字符数。默认不设置最大输入字符数限制。到达文本最大字符限制,将无法继续输入字符,同时边框变为红色。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | 是 | 文本的最大输入字符数。 |
showCounter10+
showCounter(value: boolean, options?: InputCounterOptions)
设置当通过InputCounterOptions输入的字符数超过阈值时显示计数器。
参数value为true时,才能设置options,文本框开启计数下标功能,需要配合maxlength(设置最大字符限制)一起使用。字符计数器显示的效果是当前输入字符数/最大可输入字符数。
当输入字符数大于最大字符数乘百分比值时,显示字符计数器。如果用户设置计数器时不设置InputCounterOptions,那么当前输入字符数达到最大字符数时,边框和计数器下标将变为红色。用户同时设置参数value为true和InputCounterOptions,当thresholdPercentage数值在有效区间内,且输入字符数超过最大字符数时,边框和计数器下标将变为红色,框体抖动。highlightBorder设置为false,则不显示红色边框,计数器默认显示红色边框。内联模式下字符计数器不显示。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | boolean | 是 | 是否显示计数器。 |
options11+ | InputCounterOptions | 否 | 计数器的百分比。 |
style10+
style(value: TextContentStyle)
设置文本框多态样式,内联输入风格只支持TextAreaType.Normal类型。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | TextContentStyle | 是 | 文本框多态样式。 默认值:TextContentStyle.DEFAULT |
enableKeyboardOnFocus10+
enableKeyboardOnFocus(value: boolean)
设置TextArea通过点击以外的方式获焦时,是否绑定输入法。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | boolean | 是 | 通过点击以外的方式获焦时,是否绑定输入法。 默认值:true |
selectionMenuHidden10+
selectionMenuHidden(value: boolean)
设置长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | boolean | 是 | 长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单。 默认值:false |
barState10+
barState(value: BarState)
设置输入框编辑态时滚动条的显示模式。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | BarState | 是 | 输入框编辑态时滚动条的显示模式。 默认值:BarState.Auto |
maxLines10+
maxLines(value: number)
配置textOverflow一起使用时,maxlines为可显示行数,超出截断;未配置textOverflow时,内联模式获焦状态下内容超出maxlines时,文本可滚动显示,内联模式非获焦状态下不生效maxlines,非内联模式按行截断。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | 是 | 内联输入风格编辑态时文本可显示的最大行数。 默认值:3,非内联模式下,默认值为+∞,不限制最大行数。 取值范围:(0, +∞) |
type11+
type(value: TextAreaType)
设置输入框类型。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | TextAreaType | 是 | 输入框类型。 默认值:TextAreaType.Normal |
enableAutoFill12+
enableAutoFill(value: boolean)
设置是否启用自动填充。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | boolean | 是 | 是否启用自动填充。 true表示启用,false表示不启用。 默认值:true |
contentType12+
contentType(contentType: ContentType)
设置自动填充类型。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
contentType | ContentType | 是 | 自动填充类型。 |
wordBreak12+
wordBreak(value: WordBreak)
设置文本断行规则。该属性对placeholder文本无效。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | WordBreak | 是 | 文本断行规则。 默认值:WordBreak.BRE |
textOverflow12+
textOverflow(value: TextOverflow)
设置文本超长时的显示方式。
内联模式,主动配置textoverflow才会生效按maxline截断效果,不配置时,默认不截断。
文本截断是按字截断。例如,英文以单词为最小单位进行截断,若需要以字母为单位进行截断,wordBreak属性可设置为WordBreak.BREAK_ALL。
当overflow设置为TextOverflow.None、TextOverflow.Clip、TextOverflow.Ellipsis时,需配合maxLines使用,单独设置不生效。设置TextOverflow.None与TextOverflow。Clip效果一样。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | TextOverflow | 是 | 文本超长时的显示方式。 默认值:TextOverflow.Clip |
lineBreakStrategy12+
lineBreakStrategy(strategy: LineBreakStrategy)
设置折行规则。该属性在wordBreak不等于breakAll的时候生效,不支持连词符。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
strategy | LineBreakStrategy | 是 | 文本的折行规则。 默认值:LineBreakStrategy.GREEDY |
事件
除支持通用事件外,还支持以下事件:
onChange
onChange(callback: (value: string) => void)
输入内容发生变化时,触发该回调。
TextClock
TextClock组件通过文本将当前系统时间显示在设备上。支持不同时区的时间显示,最高精度到秒级。
子组件
无
接口
TextClock(options?: { timeZoneOffset?: number, controller?: TextClockController })
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
timeZoneOffset | number | 否 | 设置时区偏移量。 取值范围为[-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 }集合中的浮点数时不再进行取整。 |
controller | TextClockController | 否 | 绑定一个控制器,用来控制文本时钟的状态。 |
属性
除支持通用属性和文本通用属性的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,则使用默认值。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | string | 是 | 显示时间格式。 |
以下是format输入的格式样式及对应的显示效果:
输入格式 | 显示效果 |
---|---|
yyyy年M月d日 EEEE | 2023年2月4日 星期六 |
yyyy年M月d日 | 2023年2月4日 |
M月d日 EEEE | 2月4日 星期六 |
M月d日 | 2月4日 |
MM/dd/yyyy | 02/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/d | 2023/2/4 |
yyyy-M-d | 2023-2-4 |
yyyy.M.d | 2023.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 aa | 5:00:04 上午 |
HH | 17 |
示例代码:
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())
}