鸿蒙:搜索框组件Search

news/2024/7/21 9:55:48 标签: harmonyos

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

说明

该组件从API Version 8开始支持

子组件

接口

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

参数:

参数名

参数类型

必填

参数描述

value

string

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

placeholder

string

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

icon

string

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

说明:

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

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

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

controller

SearchController

设置Search组件控制器。

属性

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

名称

参数类型

描述

searchButton

string

搜索框末尾搜索按钮文本内容,默认无搜索按钮。

placeholderColor

ResourceColor

设置placeholder文本颜色。

placeholderFont

Font

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

textFont

Font

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

textAlign

TextAlign

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

默认值:TextAlign.Start

copyOption9+

CopyOptions

设置输入的文本是否可复制。

事件

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

名称

功能描述

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

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

示例

// xxx.ets
@Entry
@Component
struct SearchExample {
@State changeValue: string = ''
@State submitValue: string = ''
controller: SearchController = new SearchController()

build() {
Column() {
Text('onSubmit:' + this.submitValue).fontSize(18).margin(15)
Text('onChange:' + this.changeValue).fontSize(18).margin(15)
Search({ value: this.changeValue, placeholder: 'Type to search...', controller: this.controller })
.searchButton('SEARCH')
.width(400)
.height(40)
.backgroundColor('#F5F5F5')
.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('Set caretPosition 1')
.onClick(() => {
// 设置光标位置到输入的第一个字符后
this.controller.caretPosition(1)
})
}.width('100%')
}
}


http://www.niftyadmin.cn/n/5457555.html

相关文章

CloudStack 中的IP地址状态解析:Allocated、Reserved与Free

在云环境管理中,IP地址的分配与管理是至关重要的环节。作为一款开源、高度可扩展的云计算平台,CloudStack 提供了对IP地址资源的精细化管控能力。本文将聚焦于CloudStack环境中的三种主要IP状态——Allocated、Reserved与Free,帮助读者理解它…

使用OpenSSL工具验证证书

验证证书的原理涉及到公开密钥基础设施(Public Key Infrastructure, PKI)和数字证书的加密原理。以下是验证证书文件的基本原理和步骤: 证书组成:SSL 证书通常包含公钥、证书所有者的信息、证书颁发机构(Certificate A…

2024年03月CCF-GESP编程能力等级认证C++编程五级真题解析

本文收录于专栏《C++等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第1题 唯一分解定理描述的内容是( )? A. 任意整数都可以分解为素数的乘积 B. 每个合数都可以唯一分解为一系列素数的乘积 C. 两个不…

row_number 函数和关联更新

生成测试数据,房间号数据如下: CREATE TABLE hotel (floor_nbr,room_nbr) ASSELECT 1,100 FROM DUAL UNION ALLSELECT 1,100 FROM DUAL UNION ALLSELECT 2,100 FROM DUAL UNION ALLSELECT 2,100 FROM DUAL UNION ALLSELECT 3,100 FROM DUAL; 里面的房间号…

泛微E9 担当只能查看与自己相关的明细表数据,无关数据隐藏不显示

功能背景 我们在完成一些大型的任务时,会涉及到多个担当来分工,每个担当都有自己的工作范围,但是在担当确认自己的工作时,其他担当的工作内容需要保密。 实例 申请人在填报时,需要填写类型、项目名、担当&#xff0…

云存储比起自建服务器做数据存储的好处是什么?

近年来,国内科技行业开始趋于饱和,越来越多的企业将海外业务作为新的增长点。 但由于国内外政策、市场等因素不同,在出海过程中,安全合规、海外业务保障、应对各地区合规挑战成为企业最普遍的需求之一。 最基本的问题之一是&…

极速上架:探索常用的苹果应用商店上架工具,提高应用发布效率

摘要 移动应用app上架是开发者关注的重要环节,但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作,各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用,最终指出合理使用工具的重要性。 引言 移动应…

初识PySide6/PyQt6:基础简介及环境的安装配置与使用(一)

文章目录 一、基础简介二、PySide 6/PyQt 6具有的特性三、PySide 6/PyQt 6之间的区别四、搭建PyQt 6 环境4.1 安装PyQt64.2 测试PyQt6环境4.3 pycharm 配置Qt Designer、PyUIC 五、Qt Designer使用(基础开发流程实操)六、官方文档 一、基础简介 PySide …