前端学习Flutter笔记(第二章:基本组件使用笔记)

news/2024/11/2 23:30:57/

MaterialApp和Scaffold组件

1、MaterialApp是一个Widget,通常作为顶层widget使用

2、Scaffold是布局结构的实现,这个组件提供了显示drawer、snackbar和底部sheet的API

Scaffold有以下几个属性:

appBar:页面顶部的一个appBar

body:主体

drawer:抽屉菜单

3、Container组件,类似与div

alignment:topCenter:顶部剧中对齐;topLeft:顶部左对齐;topCenter、centerLeft;centerRight;bottomCenter;bottomLeft;bottomRight;

decoration:装css样式的地方;BoxDecoration(color\border\width\borderRadius\boxShadow\渐变色)

margin:外边距,EdgeInsets.all(20);EdgeInsets.only(top:20,right:20)

padding:内边距,EdgeInsets.all(20);EdgeInsets.only(top:20,right:20)

transform:

height:数值/double.infinity 相当于100%

width:数值/double.infinity 相当于100%

4、Text组件

textAlign:center\left\right\justfy

textDirection:文本方向 ltr:从左到右 rtl:从右到左

overflow:clip裁剪;fade渐隐;ellipsis省略号

textScaleFactor:文字显示缩放

maxLines:最大行数

style:样式

5、图片

Image.asset:本地图片

Image.asset('assets/images/common/logo.png',height: 40,fit: BoxFit.cover,),

Image.network:在线图片

Image.network('https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',width: 130,height: 180,fit: BoxFit.cover,),

圆形图片有两种方式:

1、借用Container的decoration,设置背景图image:DecorationImage(image:Image.netowork(‘xxx’),fit:BoxFit.cover),并且borderRaius为圆形

2、ClipRRect组件,设置borderRaius。

3、ClipOval组件,指定等宽等高。此方式更为简单!

6、图标组件以及如何使用阿里图标库

内置:Icon(Icons.home,size:40,color:Colors.red);

7、列表组件 就可以使页面溢出上下滑动了

ListView

ListTitle,相当于li

8、Divider

分割线 相当于


9、GirdView 网格布局

1、可以通过GridView.count 实现网格布局
2、可以通过GridView.extent 实现网格布局
3、通过GridView.builder实现动态网格布局

scrollDirection:Axis 滚动方法

padding:内边距

resolve:bool 组件反向排序

crossAxisSpacing:水平间距

mainAxisSpacing:垂直间距

crossAxisCount:一行多少个 仅在GridView.count中使用

maxCrossAxisExtent:横轴子元素的最大长度

childAspecRatio:子组件的宽高比例

children:[]

10、Row

children:[]

mainAxisAlignment:主轴排列 start center end 相当于justify-content

crossAxisAlignment:纵轴,相当于align-items

11、Column

12、Flex布局 Expanded

例如:一行内左边占三分之一 右边占三分之二

Row(children:[Expandes(flex:1,child:xxx),Expandes(flex:2,child:xxx),]
)
或者
Flex(direction:Axis.vertical,children:[Expandes(flex:1,child:xxx),Expandes(flex:2,child:xxx),]
)

13、padding和Padding

padding:EdgeInsets.all(20); //和四周等距20

还可以使用Padding组件,里面也是padding:EdgeInsets.all(20); 。 当然没有必要

14、Stack 堆叠组件

就会出现都叠加起来,一层一层的叠加,默认在左上角开始叠加

15、Postioned

定位组件,就会根据父元素进行定位

top、left、right、bottom

16、获取屏幕宽高数据

final size = MediaQuery.of(context).size //写在build里面

可以用于例如Postioned组件的宽度 width:size;

17、AspectRatio 比如16:9的盒子装一个16:9的图片

控制子元素的宽高比

18、CircleAvatar

头像组件

CircleAvatar(backgroundImage: NetworkImage('https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg'),),

19、Card组件 卡片

margin:

child:

shadowColor:

clipBehavior:内容溢出的裁剪形式,Clip.none :不裁剪;Clip.hardEdge:

Shape:阴影效果

color:背景颜色

20、ClipVal 可以实现圆形的盒子。或者用Container也可以实现圆形盒子

例如:

ClipOval(child:Image.network('https://xxxxx',fit:BoxFit.cover,)
)

21、CircleAvatar 圆角头像组件

CircleAvatar(backgroundColor: Colors.red,radius: 40,child: CircleAvatar(radius: 30, //圆角 半径backgroundImage: NetworkImage('https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg'),),))

22、按钮组件

ElevateButton、TextButton、OutlineButton、IconButton、带图标的按钮

ElevatedButton(onPressed: () {print('点击');},onLongPress: () {print('长按');},child: Text('普通按钮'))TextButton(onPressed: () {print('点击');},onLongPress: () {print('长按');},child: Text('文本按钮'))OutlinedButton(onPressed: () {print('点击');},onLongPress: null,child: Text('边框按钮'))IconButton(icon: Icon(Icons.home),onPressed: () {print('点击');},)一下是带图标的按钮
ElevatedButton.icon(onPressed: null, icon: Icon(Icons.home), label: Text('带图标按钮'))自定义按钮样式
ElevatedButton(style: ButtonStyle(backgroundColor: MaterialStateProperty.all(Color.fromRGBO(154, 165, 60, 0.8)),foregroundColor: MaterialStateProperty.all(Colors.red),),onPressed: () {print('点击');},onLongPress: () {print('长按');},child: Text('普通按钮'))],按钮宽高
可以套一个sizeBox,并设置宽高,按钮就会根据这个盒子的宽高了

23、Wrap组件 可以实现流布局 其效果和Row类似,但是row溢出会告警,wrap会自动换行

Wrap(spacing: 10, //水平间距runSpacing: 10, //垂直间距children: [MyButton(buttonText: '第一个', myFunc: () {}),MyButton(buttonText: '222', myFunc: () {}),MyButton(buttonText: '333', myFunc: () {}),MyButton(buttonText: '444', myFunc: () {}),MyButton(buttonText: '555', myFunc: () {}),MyButton(buttonText: '666', myFunc: () {}),MyButton(buttonText: '777', myFunc: () {}),],)

TODO:路由管理、接口请求、接口请求头设置、状态管理(类似于VUEX)、上拉加载


http://www.ppmy.cn/news/641569.html

相关文章

帆软report10.0,从人工智能到人工+智能,day1

前言: 最近在全基地推进品质CTQ,这个功能说实话在一年前已经开发完成了,中间修修补补,跌跌代代不下10-20版。看起来好像有点夸张吧。其实说实话,真正的BI系统用好,是需要业务人员和IT部门反复碰撞的。一年前…

虚拟机VMware workstation安装gho系统详解

这是一篇很实用的文章: https://jingyan.baidu.com/article/14bd256e29320dbb6d26120d.html 但在实际操作中需要注意的,总结如下: PE分区后要必须将C盘设置为活动分区;用软碟通将GHO系统转成ISO后,要在虚拟机–>…

如何实用gho文件安装操作系统

利用GHO镜像可以一键还原系统的方式来达到安装系统的效果,这样做的好处可以不用自己去检测硬件的驱动程序,系统会自动检测安装,同时避免了手动激活Windows系统,通过GHO镜像安装系统非常方便快捷。 1、在电脑的非系统盘分区处建立一…

GHO解析

GHO即为ghost的镜像文件,可通过OneKey进行还原和备份,也可直接通过光盘优化启动,进入ghost11进行一键还原。一般是由备份工具Ghost软件备份系统后产生的文件格式,如果在备份的时候选择了分卷备份,同时还会产生GHS文件名…

ghost安装系统

1.图说 2.文说 1.放入ghost系统光盘,或者使用带WinPE的启动盘,并设置为第一启动项来启动,选择对应启动选项。 2.进入WinPE系统后,点击[开始]-[程序]-[常用工具]-[ghost]打开WinPE系统带的ghost软件。 3.选择[local]-[partitio…

gho 的相关资料

原文链接:http://baike.baidu.com.cn/view/704362.htm Gho 是 Ghost 工具软件的镜像文件存放扩展名,Gho 文件中是使用Ghost 软件备份的硬盘分区或整个硬盘的所有文件信息。 *.gho 文件可以使用 GHOSTEXP 来浏览、修改或提取文件。 Ghost 是赛门铁克公…

vmware虚拟机安装gho版本系统

文章目录 1.首先下载winpe2.选择第二个进入pe3. 接着选择分区工具4.选择快速分区4.1 选择4K的扇区4.2 分好之后就是2个,并关机5. 开始映射到本地,加载win7Gho文件,去掉只读5.1 将Gho文件存入映射盘即可6. 静待安装即可;7. 如果不能映射,这时要把那个iso的gho文件加载到cd-rom中…

GHO和ISO的区别

GHO是GHOST境象文件、是用GHOST备份的克隆文件,是用ghost恢复系统的时候使用的。iso文件就相当于一张光盘,而gho则是某个硬盘或者某个硬盘分区的备份文件。用iso文件安装系统:最好的办法是找台刻录机来把这个iso文件刻成一张系统安装盘&#…