文章目录

  • 提示
  • 实现效果
  • 实现代码
  • 测试代码

提示

已将代码上传至gitee,后续会继续更新学习封装的一些组件:
flutter练习

实现效果

实现代码

import 'package:flutter/material.dart';/// @author longzipeng
/// @创建时间:2022/3/29
/// 查询组件
class SearchWidget extends StatefulWidget {final double? height; // 高度final double? width; // 宽度final String? hintText; // 输入提示final ValueChanged<String>? onEditingComplete; // 编辑完成的事件回调const SearchWidget({Key? key,this.height,this.width,this.hintText,this.onEditingComplete}): super(key: key);@overrideState<SearchWidget> createState() => _SearchWidgetState();
}class _SearchWidgetState extends State<SearchWidget> {var controller = TextEditingController();@overridevoid initState() {super.initState();}/// 清除查询关键词clearKeywords() {controller.text = "";}@overrideWidget build(BuildContext context) {return LayoutBuilder(builder: (context, constrains) {var width = widget.width ?? constrains.maxWidth / 2; // 父级宽度var height = widget.width ?? widget.height ?? 30;return Container(width: width,height: height,decoration: BoxDecoration(border: Border.all(color: Theme.of(context).primaryColor),borderRadius: BorderRadius.circular(height)),child: TextField(controller: controller,decoration: InputDecoration(hintText: widget.hintText ?? "请输入搜索词",hintStyle: TextStyle(color: Colors.grey, fontSize: 14),contentPadding: EdgeInsets.only(bottom: height / 3),border: InputBorder.none,icon: Padding(padding: const EdgeInsets.only(left: 10, top: 5),child: Icon(Icons.search,size: 18,color: Theme.of(context).primaryColor,)),suffixIcon: IconButton(icon: const Icon(Icons.close,size: 17,),onPressed: clearKeywords,splashColor: Theme.of(context).primaryColor,)),onEditingComplete: () {widget.onEditingComplete?.call(controller.text);}),);});}
}

测试代码

import 'package:csdn_flutter_demo/pages/common/common_appbar.dart';
import 'package:csdn_flutter_demo/widgets/search_widget.dart';
import 'package:flutter/material.dart';/// @author longzipeng
/// @创建时间:2022/3/30
/// 下拉选择demo
class SearchDemoPage extends StatefulWidget {const SearchDemoPage({Key? key}) : super(key: key);@overrideState<SearchDemoPage> createState() => _SearchDemoPageState();
}class _SearchDemoPageState extends State<SearchDemoPage> {/// 查询数据search(value) {print("搜索的值为:$value");}@overrideWidget build(BuildContext context) {return Scaffold(appBar: CommonAppbar(title: "搜索框演示",),body: Center(child: SearchWidget(onEditingComplete: search,),));}
}

flutter实现搜索框相关推荐

  1. Flutter搜索框SearchBar

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 网易云[玩转大前端]配套课程 EDU配套 教程 Flutter开发的点滴积累系列文章 1 使用封装库 1.1 ...

  2. html5搜索框美化,CSS美化的漂亮搜索框

    CSS美化的漂亮搜索框 我要搜索 搜索 var $ = function(id){return document.getElementById(id);} var formSubmit = funct ...

  3. 实现搜索框记录搜索历史_三个案例告诉你:“搜索框”该如何设计?

    不管是在2C还是2B产品,"搜索"是产品中最常见且必不可少的功能模块之一.对于用户来说,在众多功能模块和信息层级中如何快速定位到目标,通过输入已知的关键词进行搜索是最便捷的方式,没 ...

  4. Vue搜索框保存临时搜索的记录

    <template><div><inputtype="text"list="sg-nav-search"placeholder=& ...

  5. JavaScript实现智能搜索框

    应用场景: 1. 搜索框在页面中占据的空间过小,希望无论浏览到什么位置,可以轻易地回到并聚焦搜索框. 2. 搜索框里面的文字大小过小,希望能够在上方开辟一块空间放大内容 解决思路: 1. 对整个页面添 ...

  6. iOS中UISearchBar(搜索框)使用总结

    2019独角兽企业重金招聘Python工程师标准>>> iOS中UISearchBar(搜索框)使用总结 初始化:UISearchBar继承于UIView,我们可以像创建View那样 ...

  7. PHP自动搜索框post,php搜索框提示(自动完成)实例代码_PHP教程

    百度的搜索大家都在用,当用户输入文字时,搜索框下面自动提示相关的信息,加强了用户体验,的确不错,那么这个效果是如何实现的呢 先看一下效果图吧,这样更有动力,要不然大家还不知道我在讲什么,到底要达到什么 ...

  8. 点击按钮的时候,切换搜索框的显示与隐藏(动画)

    1 // 搜索框出现动画 2 var i=0; 3 $('.search').on('click',function () { 4 // $('.search-positon').css('heigh ...

  9. 使用jQuery-UI来实现一个Ajax的自动完成功能(自动填充搜索框的下拉值)

    首先你要在.net拓展包中去搜索  jquery ui (Combined Libray)安装这么个文件 第二部   在控制器中添加我们根据输入搜索框的值获取符合的记录集的action 第三步  有了 ...

  10. 自定义下拉列表(使用原始的事件监听机制),在搜索框中使用

    目录 背景: 效果: 注意事项: 完整代码: 背景: 搜索框中需要使用到动态获取热点搜索历史的功能,此时需要自定义下拉列表.select组件不能完全满足要求. 搜索框下拉列表支持键盘上下键及回车选择, ...

最新文章

  1. 常见蓝牙模块介绍和AT指令
  2. 由于存储区是只读的,存储区已满,或者存储区没有正确打开,所以导致失败
  3. C语言学习 - 字节对齐
  4. python调用函数传参时、有默认值的在中间 报错了_python的大坑:使用空列表作为默认参数,让我怀疑遇到了灵异代码...
  5. 常见的软件测试缺陷分类:遇到测试缺陷怎么处理?
  6. Linux Polkit 中的pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034)修复方法及centos6和centos7的安装包
  7. 改变WCF service location的 hostName
  8. java提高篇(四)-----抽象类与接口
  9. Bolt界面引擎元对象(UIObject)的动态创建
  10. python求角度公式_Python 计算任意两向量之间的夹角方法
  11. 远程屏幕共享软件哪个比较好用
  12. 谷歌浏览器误删临时用户恢复书签
  13. tokenizers in Transformers:BPE、WordPiece,SentencePiece
  14. 你还在为不知道怎么给家人庆祝生日而发愁吗?
  15. 顺丰不“顺” 王卫何敢称王?
  16. 干货分享 | UE游戏鼠标双击判定
  17. 手机壳 套图 软件 imageEn(Delphi实现)
  18. 2022化工自动化控制仪表考试试题及答案
  19. NOA渗透率超5%?智能汽车赛道争夺下一轮市场高点
  20. 3.4 Kaggle自然场景图片分类

热门文章

  1. 投入产出模型中的经济分析(直接消耗系数等)
  2. OPPO年薪百万offer经历分享
  3. flow_from_directory返回值
  4. 双系统正确卸载Ubuntu系统
  5. 2018年全球十大突破性技术
  6. 求职经历,三轮技术面 +HR 面,面试也不过如此
  7. *理解JavaWeb目录结构
  8. python编程拍卖算法
  9. CS信息系统建设和服务认证都有哪些等级?系统集成企业如何评估申报CS认证等级?
  10. Base64 编码整理