flutter实用笔记

news2024/11/15 2:13:08

前言

写下这一篇文章是为了记录这段时间使用flutter 制作项目中一些比较常用的组件,以及具体怎么使用,获得怎样的效果。我使用的貌似是flutter4。由于官方更新迭代的差别比较明显,可能之后许多内容对应最新的flutter不适用,在此只供参考。望周知。

界面组件

顾名思义,用于前端书写界面的一些组件,有系统封装的,也可以自己在官网商城中下载,如果国内打不开的话,建议链接vpn。

一下界面组件下载地址

第三方插件官方下载地址

输入框

我使用到的输入框有两个,大体上是一样的。使用方式如一下代码,只用一点书写区别。

有时候,输入框需要输入许多内容,并且是他自动换行,如果手动设置的话,在界面中只显示一行。
这两个组件提供了一个变量maxLines。 默认值为1
将其设置为null,即可自动换行,当然也可以设置为固定的行数。填入固定的整数就可以了。

在这里插入图片描述

TextField

在TextField中,是没有 initialValue 这个初始值的变量设置,但是可以使用其他的方式
使用controllerTextField 设置初始值,如下代码

TextField(
      style: TextStyle(fontSize: ScreenUtil().setSp(30)), //对展示的字体设置大小,这里使用了插件,对字体进行适配
       inputFormatters: [
         LengthLimitingTextInputFormatter(8),		//对输入作限制,这里只能输入8位数
         FilteringTextInputFormatter.allow(
             RegExp("[a-zA-Z]|[\u4e00-\u9fa5]|[0-9]"))			//对输入作限制,进行正则匹配,符合条件的才能输入进来。
       ],
       //initialValue: "展示这个组件时的初始值",			
       controller: TextEditingController(
              text: ""),
       onChanged: (value) {
         //输入时的事件
       },
       keyboardType: TextInputType.numberWithOptions(), 		//点击输入框后,展示的键盘或者输入法键盘为什么类型
       decoration: InputDecoration(
         border: OutlineInputBorder(),
         hintStyle: TextStyle(color: Colors.grey),
         contentPadding: EdgeInsets.fromLTRB(15.0, 0, 0, 15),
         hintText: '输入提示',
       ),
     )

TextFormField

TextFormField(
      style: TextStyle(fontSize: ScreenUtil().setSp(30)), //对展示的字体设置大小,这里使用了插件,对字体进行适配
       inputFormatters: [
         LengthLimitingTextInputFormatter(8),		//对输入作限制,这里只能输入8位数
         FilteringTextInputFormatter.allow(
             RegExp("[a-zA-Z]|[\u4e00-\u9fa5]|[0-9]"))			//对输入作限制,进行正则匹配,符合条件的才能输入进来。
       ],
       initialValue: "展示这个组件时的初始值",
       onChanged: (value) {
         //输入时的事件
       },
       keyboardType: TextInputType.numberWithOptions(), 		//点击输入框后,展示的键盘或者输入法键盘为什么类型
       decoration: InputDecoration(
         border: OutlineInputBorder(),
         hintStyle: TextStyle(color: Colors.grey),
         contentPadding: EdgeInsets.fromLTRB(15.0, 0, 0, 15),
         hintText: '输入提示',
       ),
     )

按钮

文字按钮 TextButton
只显示文字的按钮

图标按钮 IconButton
可以只展示一个图标

一般按钮 ElevatedButton
一个方框中有显示的文字

下列是按钮的普通写法,按钮事件在onPressed中,调整按钮的样式在style 中

 ElevatedButton(
    onPressed: () {},
     child: Text("按钮"),
     style: ButtonStyle(),
   )

有的需求,需要在某一时刻,使得按钮不可点击。我查阅了许多资料,网上很多文章都是说在按钮中,设置其isenable为false。
在之前的flutter中应该都是通过控制isenable的值,从而控制按钮的状态是否可以点击。但是在我使用的flutter版本中,按钮中并没有isenable这个值。只能使用一下方案。
将按钮事件中,设置为null。

 ElevatedButton(
    onPressed: null,
     child: Text("按钮"),
     style: ButtonStyle(),
   )

·
·

顶部appBar

AppBar组件有许多功能,比如分页,也用到了这个,在此只记录其中三个功能,返回按钮、标题、标题右侧的组件

title 中是显示的顶部标题,在actions中,可以展示在顶部标题右侧的内容。可以是文字,下拉框、按钮等,具体不限制。因为他是一个
List 队列。

如果返回按钮没有任何其他的操作的话,就可以如下图这样写。

appBar: AppBar(title: Text(""), actions: []),

如果点击返回的时候需要进行其他的特殊操作。那么如下代码

appBar: AppBar(
    centerTitle: true,
     leading: IconButton(
         onPressed: () {
         //点击返回按钮
         },
         icon: Icon(Icons.arrow_back)),
     iconTheme: IconThemeData(color: Colors.blue),
     backgroundColor: Colors.white,
     elevation: 0,
     title: Text("标题", ),
     actions: [],
   )

leading 中写返回按钮,并且设置icon颜色。通过iconTheme 设置返回的按钮颜色

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1212255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三菱FX3U系列—小项目

目录 一、项目描述 二、IO口分配 三、运动功能图 四、项目程序 五、总结 一、项目描述 有些工作台,在工作台身上安装4个行程开关SQ1~SQ4,其中,SQ1、SQ2用来自动换向,当工作台运动到换向位置时,挡铁撞击行程开关&a…

NI USRP RIO软件无线电

NI USRP RIO软件无线电 NI USRP RIO是SDR游戏规则的改变者,它为无线通信设计人员提供了经济实惠的SDR和前所不高的性能,可帮助开发下一代5G无线通信系统。“USRP RIO”是一个术语,用于描述包含FPGA的USRP软件定义无线电设备,例如…

注塑机机械都用哪些传动配件?

注塑机的主要作用是利用塑料成型模具制成各种形状的塑料制品,能够加热塑料,对熔融塑料施加高压,使其射出而充满模具型腔,具备高精度、高效率、高可靠性的特点。注塑机使用的传动配件包括许多种类,以下是一些主要的配件…

【luckfox】3、计算重量差

前言 本章结合之前的hx711驱动&#xff0c;实现读取质量&#xff0c;记录时间及剩余质量并存入csv文件&#xff0c;计算质量差并总计。 代码 luckfox-pico\project\app\test_app\hx711\hx711_app_addtime.c #include <stdio.h> #include <stdlib.h> #include &…

嵌入式Linux开发,NFS文件系统挂载

在嵌入式linix的开发中&#xff0c;经常会需要在pc端和板端互相传输文件&#xff0c;优先可选择ftp传输&#xff0c;但是有些嵌入式板端不支持&#xff0c;只能使用nfs这种方式&#xff0c;即pc端作为服务端&#xff0c;板端作为客户端&#xff0c;将pc端的某个文件夹挂载到板端…

年薪百万的人怎么做好工作复盘和总结

我们在为谁工作&#xff1f; 在大山宏泰《我们为什么工作》一书中有提到过&#xff1a; 70%左右的人认为工作只是维持生计的存在&#xff1b; 20%左右的人认为工作是个人价值的体现&#xff1b; 不到10%的人才会认为工作是幸福的。 人类的终极幸福有四重&#xff1a;被爱&…

故障演练的关键要素及重要性

故障演练是一种有计划的、模拟真实生产环境故障的活动。通过故意引入故障、模拟系统组件失效或模拟其他异常条件&#xff0c;团队可以观察并评估系统在这些情况下的反应。这有助于发现潜在的问题、改进应急响应和提高系统整体的可用性。 一、故障演练的关键要素 计划性&#xf…

ATECLOUD-POWER电源测试系统有什么特点?如何用它测试电源模块?

ATECLOUD-POWER电源测试系统 ATECLOUD-POWER是检测电源性能的自动化测试系统&#xff0c;针对电源模块各类测试项目提供定制方案&#xff0c;指导电源模块的设计和生产&#xff0c;保证电源的质量、稳定性和可靠性。该方案包括软件定制开发以及硬件设备选择两方面&#xff0c;根…

创新升级!Coremail邮箱客户端4.0发布

11月8日&#xff0c;2023年世界互联网大会乌镇峰会盛大开幕&#xff0c;同日&#xff0c;“互联网之光”博览会新产品新技术发布&#xff08;网络安全专场&#xff09;活动在乌镇互联网国际会展中心B2馆顺利举办&#xff0c;Coremail亮相发布现场&#xff0c;重磅发布Coremail邮…

【C++干货铺】解密vector底层逻辑

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 vector介绍 vector的使用 vector的定义和使用 vector的空间增长问题 vector的增删查改 解密vector及模拟实现 成员变量 成员函数 构造函数 拷贝构造函数…

23000 个恶意流量代理的 IPStorm 僵尸网络被拆除

美国司法部今天宣布&#xff0c;联邦调查局取缔了名为 IPStorm 的僵尸网络代理服务的网络和基础设施。 IPStorm 使网络犯罪分子能够通过世界各地的 Windows、Linux、Mac 和 Android 设备匿名运行恶意流量。 与此案相关的俄罗斯裔摩尔多瓦籍公民谢尔盖马基宁 (Sergei Makinin)…

Java-绘图

文章目录 Java绘图Java绘图类绘图颜色与画笔属性设置颜色设置画笔 绘制文本显示图片图像处理1、放大与缩小2、图像翻转3、图像旋转4、图像倾斜 End Java绘图 Java绘图是指在Java程序中创建和显示图形的过程。Java提供了许多类和方法来支持绘图。 Java绘图类 Java中主要的绘图类…

软件测试个人求职简历该怎么写,模板在这里

1、个人资料 姓 名&#xff1a;xxx 性 别&#xff1a;x 手机号码&#xff1a;138888888xx 邮 箱&#xff1a; xxx 学 历&#xff1a;本科 专 业&#xff1a;电子商务 英 语&#xff1a;四级 当前工作&#xff1a;测试工程师 从业时间&#xff1a;4年 期望薪资&#xff1a;…

[Linux] 网络文件共享服务

一、存储类型 存储类型可分为三类&#xff1a;DAS&#xff08;直连式存储&#xff09;,NAS&#xff08;网络附加存储&#xff09;,SAN&#xff08;存储区域网络&#xff09;。 1.1 DAS 定义&#xff1a; DAS是指直连存储&#xff0c;即直连存储&#xff0c;可以理解为本地文…

Vue3使用i18n国际化

安装 npm install vue-i18nnext 创建i18n文件夹 我这个项目是中、俄语言切换 zh.ts里放中文语言下要显示的字段&#xff0c;rn.ts里放俄语要显示的字段 index.ts import { createI18n } from vue-i18n; import ZH from ./zh.js; import RN from ./rn.js; const messages {zh…

echarts官网卡?

全网echarts案例资源大总结和echarts的高效使用技巧&#xff08;细节版&#xff09; - 掘金 drawnLine() {let myChart echarts.init(document.getElementById("grade"));// 绘制图表myChart.setOption({title: {left: "center",},tooltip: {trigger: &qu…

有效数字(表示数值的字符串),剑指offer,力扣

目录 题目地址&#xff1a; 我们直接看题解吧&#xff1a; 难度分析&#xff1a; 解题方法&#xff1a; 审题目事例提示&#xff1a; 解题思路&#xff1a; 代码实现&#xff1a; 题目地址&#xff1a; LCR 138. 有效数字 - 力扣&#xff08;LeetCode&#xff09; 难度&#xf…

利用Nextcloud搭建企业私有云盘系统

利用Nextcloud搭建企业私有云盘系统 1. 场景介绍2. 环境准备3. 安装NextCloud4. 系统功能验证 1. 场景介绍 Nextcloud是一款免费开源的私有云存储系统&#xff0c;采用PHPMySQL开发&#xff0c;提供了多个同步客户端支持多种设备访问&#xff0c;使用Nextcloud可以快速便捷地搭…

二、项目的运行环境

项目的运行环境 一、概述 项目所处的环境可能对项目的开展产生有利或不利的影响&#xff1a; 事业环境因素组织过程资产 二、事业环境因素 资源可用性&#xff1a;例如包括合同和采购制约因素、获得批准的供应商和分包商以及合作协议&#xff1b; 法律限制、政府或行业标准…

远程创建分支本地VScode看不到分支

在代码存放处右击&#xff0c;点击Git Bash Here 输入git fetch–从远程仓库中获取最新的分支代码和提交历史 就OK啦&#xff0c;现在分支可以正常查看了