首页 > 其他分享 >HarmonyOS开发之Search组件

HarmonyOS开发之Search组件

时间:2024-09-13 15:23:58浏览次数:11  
标签:Search changeValue value HarmonyOS controller 搜索 组件 placeholder

在HarmonyOS应用开发中,Search 组件提供了丰富的自定义选项,允许开发者根据应用的需求定制搜索栏的外观和行为。本文将通过几个具体的场景来介绍如何使用 Search 组件的不同属性来自定义搜索栏。

场景一:自定义搜索图标

为了使搜索栏更加符合应用的设计风格,可以通过 searchIcon 属性来自定义搜索图标的颜色和大小。

Search({
    value: this.changeValue,
    placeholder: '请输入搜索内容',
    controller: this.controller
})
.searchButton('搜索', {fontSize: '16fp', fontColor: '#3789CC'})
.searchIcon({
    src: $r('app.media.Heart')
});

这里我们设置了搜索按钮上的文本内容和样式,并且更改了搜索图标。

场景二:自定义删除图标

当用户输入文本后,可能需要一个清晰可见的方式来清除搜索框中的内容。这可以通过 cancelButton 属性来实现。

Search({
    value: this.changeValue,
    placeholder: '请输入搜索内容',
    controller: this.controller
})
.cancelButton({
    style: CancelButtonStyle.CONSTANT,
    icon: {
        color: Color.Red,
        src: $r('app.media.delete')
    }
});

这段代码设置了清除图标的状态和样式。

场景三:为Search组件添加背景填充

有时候为了让搜索栏更加突出或者融入页面设计,我们可以为其添加背景填充。

Search({
    value: this.changeValue,
    placeholder: '手机话费充值',
    controller: this.controller
})
.backgroundImage(this.isShowColor ? $r('app.media.Beach') : undefined)
.backgroundImageSize({width: '100%', height: 50});

上述代码展示了如何根据条件改变背景图像及其大小。

场景四:更改光标样式

对于提高用户体验来说,改变光标样式可以让用户更容易注意到光标的位置。这可以通过 caretStyle 属性完成。

Search({
    value: this.changeValue,
    placeholder: '请输入搜索内容',
    controller: this.controller
})
.caretStyle({
    width: '3vp',
    color: '#9E2927'
});

这里我们调整了光标的宽度和颜色。

场景五:更改Search组件圆角

最后,为了使搜索栏看起来更加现代和美观,可以通过 borderRadius 属性来设定圆角半径。

Search({
    value: this.changeValue,
    placeholder: '请输入搜索内容',
    controller: this.controller
})
.borderRadius(5);

通过这些示例,我们可以看到 Search 组件提供了许多方式来自定义搜索栏的外观,从而帮助开发者创建更加符合需求的应用界面。

标签:Search,changeValue,value,HarmonyOS,controller,搜索,组件,placeholder
From: https://blog.51cto.com/u_15171169/12001470

相关文章

  • 第一章、HarmonyOS介绍简介
    1.前言欢迎来到鸿蒙应用开发系列教程的第一课,在本单元,你将学习HarmonyOS的基本概念,熟悉HarmonyOS核心技术理念、开发语言、UI框架开发和测试工具,了解应用的上架与分发能力。2.应用开发的机遇、挑战和趋势随着万物互联时代的开启,应用的设备底座将从几十亿手机扩展到数百亿的iot设......
  • 支付宝携手HarmonyOS SDK打造高效便捷的扫码支付体验
    背景在日常的购物转账、生活缴费等在线支付中,用户在正式拉起支付界面前,均需要至少经历一次"识别"+两次"寻找",即识别归属应用、寻找应用、寻找扫码入口,才能完成扫码、付款,每一步都带来不同程度的用户流失。如何将步骤繁琐的扫码支付做到最简化,是优化在线支付体验的关键。策略支付宝......
  • VUE框架Vue3组件传送实现模态窗口切换------VUE框架
    <template><divclass="s1"><h1>我是App组件</h1><YeYe></YeYe></div></template><script>importYeYefrom"./components/YeYe.vue";exportdefault{name......
  • vue3在引入组件时报'has no default export'
    原文:https://blog.csdn.net/weixin_53042678/article/details/138254610这个虽然不影响程序的运行,但是有强迫症患者觉得爆红难受,报错如下: 这个解决的方法也很简单,点击Vscode左下角的设置  添加 "vetur.validation.script":false,重启Vscode即可生效  ......
  • AI基础 L8 Local Search I 局部搜索
    IterativeImprovementAlgorithms•Inmanyoptimizationproblems,thepathtoagoalisirrelevant—thegoalstateitselfisthesolution•Statespace=asetofgoalstates—findonethatsatisfiesconstraints(e.g.,notwoclassesatsametime)—......
  • elasticsearch学习笔记整理(含下面总结的面试题)
    elasticsearch是一个全文检索的搜索引擎Elasticsearch是一个基于Lucene的搜索服务器ES可以做全文检索、模糊查询(搜索)、数据分析(提供分析语法,例如聚合)。es是不能使用root用户进行启动的,要新创建一个用户才行创建用户:useraddqianfeng设置密码:passwdqianfeng早期es的结构......
  • Vue中局部组件
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title><......
  • Vue中的全局组件
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title><......
  • VUE父子组件如何通信
    在Vue.js中,父子组件之间的通信有多种方式。以下是几种常见的方法:1.通过Props传递数据(父组件向子组件)父组件可以通过props将数据传递给子组件。这是父子组件之间最常见的通信方式。<!--ParentComponent.vue--><template><ChildComponent:message="parentMessage"......
  • HarmonyOS开发之Swiper页面布局
    在HarmonyOSNEXT中使用Swiper组件进行页面布局时,为了提供更好的用户体验,我们可以实现一些自定义的动画效果以及自定义指示器。以下是两个具体的实现方案:场景一:Swiper页面支持自定义动画要实现Swiper页面支持自定义动画,我们需要设置Swiper组件的属性,并添加相应的事件处理程序来控制......