HarmonyOS-UIAbitity-Search——【坚果派-红目香薰】
摘要
作者:红目香薰
团队:坚果派
团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。
目录
摘要
HarmonyOS-UIAbitity-Search
接口
属性
事件
SearchController
导入对象
caretPosition
示例代码
HarmonyOS-UIAbitity-Search
搜索框组件,适用于浏览器的搜索内容输入框等应用场景。
接口
Search(options?: { value?: string; placeholder?: string; icon?: string; controller?: SearchController })
参数:
参数名 |
参数类型 |
必填 |
参数描述 |
|
value |
string |
否 |
搜索文本值。 |
|
placeholder |
string |
否 |
无输入时的提示文本。 |
|
icon |
string |
否 |
搜索图标路径,默认使用系统搜索图标,支持的图标格式: svg, jpg和png。 |
|
controller |
SearchController |
否 |
控制器。 |
属性
名称 |
参数类型 |
描述 |
|
searchButton |
string |
搜索框末尾搜索按钮文本值,默认无搜索按钮。 |
|
placeholderColor |
ResourceColor |
设置placeholder颜色。 |
|
placeholderFont |
Font |
设置placeholder文本样式。 |
|
textFont |
Font |
设置搜索框内文本样式。 |
事件
名称 |
功能描述 |
onSubmit(callback: (value: string) => void) |
点击搜索图标、搜索按钮或者按下软键盘搜索按钮时触发。 -value: 当前输入文本框的内容。 |
onChange(callback: (value: string) => void) |
输入内容发生变化时,触发回调。 -value: 当前输入文本框的内容。 |
onCopy(callback: (value: string) => void) |
组件触发系统剪切板复制操作。 -value: 复制的文本内容。 |
onCut(callback: (value: string) => void) |
组件触发系统剪切板剪切操作。 -value: 剪切的文本内容。 |
onPaste(callback: (value: string) => void) |
组件触发系统剪切板粘贴操作。 -value: 粘贴的文本内容。 |
SearchController
Search组件的控制器,通过它操作Search组件。
导入对象
controller: SearchController = new SearchController()
caretPosition
caretPosition(value: number): void
设置输入光标的位置。
参数:
参数名 |
参数类型 |
必填 |
参数描述 |
|
value |
number |
是 |
从字符串开始到光标所在位置的长度。 |
示例代码
@Entry
@Component
struct Index {
@State changeValue: string = '';
@State submitValue: string = '';
controller: SearchController = new SearchController();
build() {
Column() {
Text('提交:' + this.submitValue).fontSize(18).margin(15)
Text('修改:' + this.changeValue).fontSize(18).margin(15)
Search({ value: this.changeValue, placeholder: '搜索...', controller: this.controller })
.searchButton('搜索')
.width(400)
.height(40)
.backgroundColor(Color.White)
.placeholderColor(Color.Grey)
.placeholderFont({ size: 14, weight: 400 })
.textFont({ size: 14, weight: 400 })
.onSubmit((value: string) => {
this.submitValue = value;
})
.onChange((value: string) => {
this.changeValue = value;
})
.margin(20)
Button('设置插入位置是 1')
.onClick(() => {
// 设置光标位置到输入的第一个字符后
this.controller.caretPosition(1);
})
}.width('100%')
}
}
示例效果:
- 点赞
- 收藏
- 关注作者
评论(0)