HarmonyOS-UIAbitity-Search——【坚果派-红目香薰】

2024-02-03 08:51:56 浏览数 (3)

示例代码

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

从字符串开始到光标所在位置的长度。

示例代码

代码语言:text复制
 @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 人点赞