当前位置: 首页 > news >正文

flutter的TextField参数、案例整理(上)

TextField

概述

  • TextField 用于文本输入

构造函数

const TextField({Key key,this.controller, this.focusNode,this.decoration = const InputDecoration(),TextInputType keyboardType,this.textInputAction,this.textCapitalization = TextCapitalization.none,this.style, // 文本样式this.strutStyle,this.textAlign = TextAlign.start, // 文本水平方向对齐方式this.textAlignVertical, // 本文垂直方向对齐方式this.textDirection, // 文本方向this.readOnly = false, // 是否是只读ToolbarOptions toolbarOptions,this.showCursor,this.autofocus = false, //在widget创建的时候是否自动获取焦点this.obscureText = false,// 是否隐藏文本,常用于密码输入this.autocorrect = true,this.enableSuggestions = true,this.maxLines = 1,this.minLines,this.expands = false,this.maxLength,//当设置了maxLength后,右下角会出现字数统计this.maxLengthEnforced = true,this.onChanged, // 内容发生改变方法回调this.onEditingComplete, // 完成编辑方法回调,实现了这个方法,键盘不再会自动收起this.onSubmitted, // 提交方法回调this.inputFormatters,// 用于校验,较麻烦,能搭配正则等使用this.enabled,this.cursorWidth = 2.0, // 光标宽度this.cursorRadius, // 光标圆角this.cursorColor, // 光标颜色this.keyboardAppearance,this.scrollPadding = const EdgeInsets.all(20.0), this.dragStartBehavior = DragStartBehavior.start,this.enableInteractiveSelection = true,this.onTap, // 点击方法回调(开始编辑)this.buildCounter, // 搭配maxLength出现的字数统计,控制字数统计的显示样式this.scrollController, // 滚动this.scrollPhysics,})

示例代码

  • 使用 TextEditingController 对 TextField 输入进行监听
    • 别忘记了释放TextEditingController
    • 可以获取输入框的文本、设置光标位置、清空输入框等操作
/// 编辑框的控制器
TextEditingController textEditingController = TextEditingController();
/// 组件
TextField(maxLines: 1,maxLength: 50,textInputAction: TextInputAction.search,style: const TextStyle(fontSize: 12, color: Colors.black),controller: textEditingController,onEditingComplete: onSearch,decoration: InputDecoration(/// 关闭计数器counterText: '',contentPadding: const EdgeInsets.symmetric(horizontal: 10),hintText: "输入你想搜索的内容",hintStyle: TextStyle(fontSize: 12, color: Global.theme.light_gray_color),hintMaxLines: 1,/// 直接用border: BorderSide.none会有布局问题,需要包裹OutlineInputBorderborder: const OutlineInputBorder(// BorderSide(color: ) 设置边框颜色// borderRadius: const BorderRadius.all(Radius.circular(10.0)), 设置边框圆角borderSide: BorderSide.none),suffixIcon: EIcon(width: 20,height: 20,path: "assets/icon/icon_search.png",onTap: onSearch),),
)
/// 在页面里放上键盘监听
KeyboardVisibilityBuilder(builder: (context, isKeyboardVisible) {dLog(_tag, "keyboard visible: $isKeyboardVisible");return emptyWidget;}),
// 给全部添加一个GestureDetector,设置onTap方法
// 方法内部加入FocusScope.of(context).unfocus();可以实现点击其他位置的地方让编辑框弹出的键盘隐藏
// 本质是用了焦点来控制键盘的显隐

通过点击button控制键盘显隐

  • 搭配FocusNode
  • FocusNode,管理TextField的焦点
class _TestWidgetState extends State<TestWidget> {// focusNodefinal FocusNode _focusNode = FocusNode(debugLabel: "Button");@overridevoid initState() {super.initState();// 监听焦点_focusNode.addListener(() {if (_focusNode.hasFocus == true) {print("输入框获得焦点");} else {print("输入框失去焦点");}});}@overridevoid dispose() {_focusNode.dispose();super.dispose();}@overrideWidget build(BuildContext context) {return Container(padding: EdgeInsets.only(left: 20, right: 20),child: Column(children: <Widget>[Center(child: TextField(focusNode: _focusNode,),),FlatButton(onPressed: () {if (_focusNode.canRequestFocus) {FocusScope.of(context).requestFocus(_focusNode);}},child: Text('键盘弹出'),),MaterialButton(onPressed: () {_focusNode.unfocus();},child: Text('键盘消失'),)],),);}
}

相关文章:

flutter的TextField参数、案例整理(上)

TextField 概述 TextField 用于文本输入 构造函数 const TextField({Key key,this.controller, this.focusNode,this.decoration const InputDecoration(),TextInputType keyboardType,this.textInputAction,this.textCapitalization TextCapitalization.none,this.style…...

【Linux进阶之路】进程间通信

文章目录 一、原理二、方式1.管道1.1匿名管道1.1.1通信原理1.1.2接口使用 1.2命名管道 2.共享内存2.1原理2.2接口使用 3.消息队列原理 4.信号量引入原理 总结 一、原理 进程间的通信是什么&#xff1f;解释&#xff1a; 简单理解就是&#xff0c;不同进程之间进行数据的输入输出…...

深度学习框架配置

目录 1. 配置cuda环境 1.1. 安装cuda和cudnn 1.1.1. 显卡驱动配置 1.1.2. 下载安装cuda 1.1.3. 下载cudnn&#xff0c;将解压后文件复制到cuda目录下 1.2. 验证是否安装成功 2. 配置conda环境 2.1. 安装anaconda 2.2. conda换源 2.3. 创建conda环境 2.4. pip换源 3.…...

全局配置

1.全局配置文件及其配置项 1.1.小程序窗口 1.2 窗口节点 1.2.1 导航栏标题 标题&#xff1a; 标题颜色&#xff1a; 背景色&#xff1a;只支持16进制值 下拉刷新&#xff1a; 刷新背景色&#xff1a; 刷新样式&#xff1a; 触底距离&#xff1a;...

leetcode算法之字符串

目录 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 最长公共前缀 class Solution { public:string longestCommonPrefix(vector<string>& strs) {//法一&#xff1a;两两比较string ret strs[0];for(int i1;i<strs.size();i){ret f…...

mongodb查询数据库集合的基础命令

基础命令 启动mongo服务 mongod -f /usr/local/mongodb/mongod.conf //注意配置文件路径停止mongo服务 关闭mongodb有三种方式&#xff1a; 一种是进入mongo后通过mongo的函数关闭&#xff1b; use admin db.shutdownServer()一种是通过mongod关闭&#xff1b; mongod --s…...

基于FactoryBean、实例工厂、静态工厂创建Spring中的复杂对象

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…...

Android 如何让路由器或者其他AP设备获取到主机名

问题原因: 连接到AP设备后,发现主机名在路由器或者其他AP设备都无法正常显示 抓取tcpdump log发现DHCP request option中没有携带host name(Option 12)字段 如下图所示 修改方法: 将config_dhcp_client_hostname配置true后,可以看到host name了 具体代码逻辑如下 pack…...

java三大集合类--List

List Set Map 一、List 几个小问题&#xff1a; 1、接口可以被继承吗&#xff1f;&#xff08;可以&#xff09; 2、接口可以被多个类实现吗&#xff1f;&#xff08;可以&#xff09; 3、以下两种写法有什么区别&#xff1f; //List list1new List();是错误的因为List()…...

机器人向前冲

欢迎来到程序小院 机器人向前冲 玩法&#xff1a;一直走动的机器人&#xff0c;点击鼠标左键进行跳跃&#xff0c;跳过不同的匝道&#xff0c;掉下去即为游戏接续&#xff0c; 碰到匝道铁钉游戏结束&#xff0c;一直往前冲吧^^。开始游戏https://www.ormcc.com/play/gameStart…...

jq——实现弹幕滚动(往左滚动+往右滚动)——基础积累

最近同事在写弹幕功能&#xff0c;下面记录以下代码&#xff1a; 1.html代码 <div id"scrollContainer"></div>2.引入jq <script src"./script/jquery-1.8.3.js" type"text/javascript"></script>3.jq代码——往左滚…...

深度学习第2天:RNN循环神经网络

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 文章目录 介绍 记忆功能对比展现 任务描述 导入库 处理数据 前馈神经网络 循环神经网络 编译与训练模型 模型预测 可能的问题 梯度消失 梯…...

深度学习之基于百度飞桨PaddleOCR图像字符检测识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介主要特点使用步骤 二、功能三、系统四. 总结 一项目简介 # Introduction to PaddleOCR Image Character Detection and Recognition System Based on Baidu…...

九、LuaTable(表)

文章目录 一、定义二、Table(表)的构造三、Table 操作&#xff08;一&#xff09;Table连接&#xff08;二&#xff09;插入和移除&#xff08;三&#xff09;Table 排序&#xff08;四&#xff09;Table 最大值 一、定义 table 是 Lua 的一种数据结构用来帮助我们创建不同的数…...

每日一题(LeetCode)----链表--链表最大孪生和

每日一题(LeetCode)----链表–链表最大孪生和 1.题目&#xff08;2130. 链表最大孪生和&#xff09; 在一个大小为 n 且 n 为 偶数 的链表中&#xff0c;对于 0 < i < (n / 2) - 1 的 i &#xff0c;第 i 个节点&#xff08;下标从 0 开始&#xff09;的孪生节点为第 (n…...

腾讯云轻量服务器通过Docker搭建外网可访问连接的redis5.x集群

原创/朱季谦 最近买了一台4核16的腾讯云轻量应用服务器,花了我快四百的大洋&#xff0c;打算搭建一堆docker组件集群&#xff0c;最先开始是通过docker搭建redis集群&#xff0c;计划使用三个端口&#xff0c;分别是7001,7002,7003。 腾讯云服务器有防火墙限制&#xff0c;故…...

C++学习之路(十一)C++ 用Qt5实现一个工具箱(增加一个进制转换器功能)- 示例代码拆分讲解

上篇文章&#xff0c;我们用 Qt5 实现了在小工具箱中添加了《时间戳转换功能》功能。为了继续丰富我们的工具箱&#xff0c;今天我们就再增加一个平时经常用到的功能吧&#xff0c;就是「 进制转换 」功能。下面我们就来看看如何来规划开发一个这样的小功能并且添加到我们的工具…...

C语言每日一题(40)栈实现队列

力扣232 用栈实现队列 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并…...

Vue.js 的生命周期

Vue.js 的生命周期钩子函数是一组在 Vue 实例生命周期中执行的函数&#xff0c;它们允许你在特定阶段执行自定义逻辑。以下是 Vue.js 的生命周期钩子函数以及它们在生命周期中的执行时机&#xff1a; 1、beforeCreate: 在实例初始化之后&#xff0c;数据观测 (data observer)…...

SeaTunnel引擎下的SQL Server CDC解决方案:构建高效数据管道

在快速发展的数据驱动时代&#xff0c;实时数据处理已经成为企业决策和运营的关键因素。特别是在处理来自各种数据源的信息时&#xff0c;如何确保数据的及时、准确和高效同步变得尤为重要。本文着重介绍了如何利用 SqlServer CDC 源连接器在 SeaTunnel 框架下实现 SQL Server …...

HARMONYOS的@builderparam的功能及使用案例

一、@BuilderParam 核心功能(一句话总结) @BuilderParam 是 ArkTS 中用于接收 @Builder 构建函数的装饰器,作用是让父组件向子组件动态注入 UI 片段/逻辑,实现组件“插槽(slot)”能力,解耦子组件固定结构、提升复用灵活性。 本质:UI 占位符,子组件只定义位置,父组件…...

Python 批量导出数据库数据至 Excel 文件每

简介 langchain专门用于构建LLM大语言模型&#xff0c;其中提供了大量的prompt模板&#xff0c;和组件&#xff0c;通过chain(链)的方式将流程连接起来&#xff0c;操作简单&#xff0c;开发便捷。 环境配置 安装langchain框架 pip install langchain langchain-community 其中…...

EF Core 10向量搜索扩展架构设计图泄露事件(内部PPT第7页已证实):这3个设计决策将重写.NET AI应用开发范式

第一章&#xff1a;EF Core 10向量搜索扩展的演进背景与战略定位随着AI应用在企业级系统中加速落地&#xff0c;传统关系型数据库的标量查询能力已难以满足语义检索、相似性匹配等新兴场景需求。EF Core 10首次将向量搜索能力深度融入ORM层&#xff0c;标志着微软在数据访问技术…...

大厂飞手技术栈拆解:从CAAC执照到无人机“机长”的技术成长路径

一、核心事件&#xff1a;大厂飞手成为“技术蓝领”新标杆2026年&#xff0c;低空经济正式进入规模化运营阶段。美团无人机单日配送突破10万单&#xff0c;京东物流无人机覆盖全国超2000个村镇。根据猎聘大数据研究院发布的《2026中国低空经济人才发展报告》&#xff0c;低空经…...

记录复现多模态大模型论文OPERA的一周工作翰

一、简化查询 1. 先看一下查询的例子 /// /// 账户获取服务 /// /// /// public class AccountGetService(AccountTable table, IShadowBuilder builder) {private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery build…...

树莓派4B学习笔记——IO通信篇(UART)

文章目录UART简介树莓派使用UART与串口屏通信串口屏简介硬件连接配置串口接口树莓派打开UART接口树莓派安装串口调试助手编程实现wiringSerial.h Serial简介C语言实现树莓派UART与串口屏通信总结树莓派4B入门学习笔记汇总UART简介 UART是一种通用串行数据总线&#xff0c;用于…...

在科技革新与政策红利的双重驱动下,低空经济正成为全球城市发展的新引擎。随着城市空中交通(UAM)场景的快速落地,气象预测技术作为核心支撑,其重要性日益凸显。

一、低空经济的气象挑战与技术突破低空经济依托 1000 米以下空域构建立体交通网络&#xff0c;涵盖物流配送、应急救援、城市通勤等多元场景。然而&#xff0c;该空域受边界层湍流、强对流、风切变等复杂气象条件影响显著&#xff0c;对气象服务的时空分辨率和响应速度提出严苛…...

nli-distilroberta-base部署教程:Kubernetes集群中水平扩展NLI推理服务

nli-distilroberta-base部署教程&#xff1a;Kubernetes集群中水平扩展NLI推理服务 1. 项目概述 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)Web服务&#xff0c;专门用于判断两个句子之间的逻辑关系。这个轻量级模型继承了RoBERTa的强大性能&…...

国民技术N32G45x定时器:从时钟树到精准周期计算的实践解析

1. 国民技术N32G45x定时器入门指南 第一次接触N32G45x系列MCU的定时器功能时&#xff0c;我也被各种时钟配置搞得晕头转向。后来在实际项目中反复调试才发现&#xff0c;只要掌握几个关键点&#xff0c;定时器的使用其实并不复杂。N32G45x作为国民技术推出的高性能MCU&#xff…...

Phi-4-mini-reasoning推理模型快速入门:Docker一键部署全攻略

Phi-4-mini-reasoning推理模型快速入门&#xff1a;Docker一键部署全攻略 1. 认识Phi-4-mini-reasoning推理模型 Phi-4-mini-reasoning是微软推出的轻量级开源推理模型&#xff0c;专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这个3.8B参数的模型虽然体积小巧&#x…...