本文目录

  • 前言
  • 基础组件
    • Text
      • 常用属性使用
    • Icon
    • Image
    • Button
    • FlutterLogo

前言

你如果做过Android开发,那一定熟悉里面各种官方提供的布局,比如LinearLayout,RelativeLayout等,你也一定和博主一样写过很多自定义控件,如果你学过Kotlin,并且用XML的DSL框架Anko声明Android组件,你会发现这与Flutter那种嵌套布局写法极为相似,下面是整个Flutter布局图:
我们将通过几篇博文讲述一些Flutter布局,对齐方式以及使用场景,下面我们开始学习基础组件。

基础组件

基础组件是组件的鼻祖,flutter必须要掌握的知识。在组件的划分上,Container,Row,Column都属于基础组件。但是Container又属于单一子元素组,而Row,Column又属于多子元素组件。

Text

Text组件,相当于Java开发Android时的TextView,基本的使用代码如下:

Text("hello world");

顾名思义,就是专门输出基本文字的控件,不过,这样使用肯定会很单调,毕竟Java开发Android时的文本控件又非常多的玩法,比如跑马灯等等,同样我们Flutter中也可以通过各种样式定义出来更多的Text玩法,博主专门列了一个表格,详细说明它的常用属性。

属性 数值
textAlign 对齐方式
maxLines 最大行数
textScaleFactor 缩放因子,默认值为1.0
overflow 配合maxLines使用,超出最大行数时,可以用省略号或渐变效果隐藏多余行数
style TextStyle对象,其属性又color,fontFamily,background,fontSize,下划线等
textSpan 配置Text.rich使用,被包装成RichText,可实现类似富文本的效果

其中常用的属性就是style,textAlign以及maxLines和overflow组合使用,比如在一个详情列表里面,内容太长就可以使用后一种组合方式。

常用属性使用

比如这里,我们先使用maxLines和overflow的组合使用,代码如下:

Text('You have pushed the button this many times:You have pushed the button this many times:You have pushed the button this many times:You have pushed the button this many times:',maxLines: 1,overflow: TextOverflow.ellipsis,
),

这里设置文本最大行数为一行,但其实文字非常长,已经超出了范围,所以,我们设置overflow,让它将多余的内容用省略号显示:
接着,我们在使用样式style,和textAlign,代码如下:

Text('You have',maxLines: 1,style: TextStyle(fontSize: 33,fontStyle: FontStyle.italic,color: Color.fromARGB(255, 123, 233, 188)),textAlign: TextAlign.center,overflow: TextOverflow.ellipsis,
),

这里我们设置了文字的各种style,比如设置文字大小33,样式为斜体,颜色随便设置了一个ARGB值,也设置了文字居中显示,效果如下:

其他属性,需要使用时,查询文档就行,不需要死记硬背,对于Text,博主这里就讲到这里,下面我们将介绍另一个基础组件Icon。

Icon

从名字我们就知道,这是一个图标,在Android系统中支持系统自带的图标,mipmap存放的就是Icon类型图片,使用的方式如下:

Icon(Icons.search,color: Colors.red,),

这里设置了图标的样式为搜索框样式,设置搜索框图标的颜色为红色,显示的效果如下:

内置的Icon系统图标其实有很多种类,如下图所示,这里就不多做讲解,后续需要使用,可以对应选择自己需要的图标:
备注:这些系统自带的图标,全部都是矢量图标,不管放大或者缩小,都不会和像素图片一样失真,所以可以放心大胆的随意使用,如果这些图标都不能满足你的需求,可以去阿里妈妈的适量图标字体库选择。

Image

在使用Java开发Android项目的时候,我们经常用到ImageView控件,flutter给我们也提供了类似的组件Image,我们先来看看基本的使用方式:

Image(image: AssetImage("images/timg.gif"),width: 200,),

这里使用起来也是很简单,直接引用你的资源文件图片文件,而且flutter的Image可以直接显示动图,而Java开发的ImageView就不行,这一点来看,flutter真心很强大,显示效果如下:
当然你如果直接把代码复制到你的项目中,直接使用肯定不行,因为flutter需要将引用的图片配置到pubspec.yaml文件中才能使用,代码如下:

flutter:assets:- images/timg.gif

所有从引用的非系统资源,都需要在这里进行声明。当然我们还可以直接引用网络中的图片直接显示,代码如下:

Image(image: NetworkImage("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1888248698,138867488&fm=26&gp=0.jpg"),width: 200,),

除了上述两种方式之外,图片还支持通过Image.file和Image.memory的方式进行加载。可以看出,图片的加载方式有很多途径,可以是本地,网络,内存,文件等,而每种方式都继承了各自的ImageProvider。

Button

Button就是按钮。Flutter中常用的按钮有以下几种:RaisedButton,FlatButton,IconButton,FloatingActionButton,OutlineButton等。当然,我们也可以根据实际情况进行按钮的自定义,我们先来看看如何使用Button,代码如下:

RaisedButton(color: Colors.blue,child: Text("波纹效果按钮"),textColor: Colors.white,onPressed: ()=>{},
),
FlatButton(textColor: Colors.blue,child: Text("扁平无背景按钮"),onPressed: (){print("FlatButton");},
),
OutlineButton(textColor: Colors.blue,child: Text("边框背景高亮按钮"),onPressed: (){print("OutlineButton");
},
),

代码其实很简单,这里不需要多做讲解,至于FloatingActionButton,默认项目又下角一直都有,IconButton就是可以点击的Icon,这里也不多赘述,上述代码实现效果如下图所示:

FlutterLogo

顾名思义,这就是一个Flutter的Logo,基础的使用方式如下:

FlutterLogo(size: 100.0,colors: Colors.red,
),

显示的效果如下图所示,不过这个控件可能用的很少:

不过这个Logo还是有一个小的用途,那就是拿它做占位图,毕竟开发项目时,更新图片比较费时,拿这个图先用一下,项目测试没问题后,在把这个Logo更换为具体的图片。

Flutter(四)——基础组件相关推荐

  1. Flutter (四) 基础 Widgets、Material Components Widget 全面介绍

    基础 Widgets 重要概念 一切皆组件.Flutter 所有的元素都是由组件组成.比如一个布局元素.一个动画.一个装饰效果等. 容器 Container 容器组件 Container 包含一个子 ...

  2. 7.Flutter教程 — 基础组件综合实例

    前言:终于到了大家最期待的综合实例 阅读完这节内容可以帮你巩固提升! 正文: 老规矩先上效果图,毕竟有图有真相! 源码找我领取哦,在文章最下面~ 先分析一下效果图 第一步:实现底部跳转栏 小T这里是五 ...

  3. Flutter学习之认知基础组件

    一.前言 前一天,学习了Dart语法,对Dart的语法和特性有了更深一步的了解.今天,来学习Flutter的基础控件,身为Android开发者都知道,一开始入坑Android就要熟悉学习其控件,如:T ...

  4. 一份超级详细的Flutter基础组件练习示例,请查收!

    学习B站技术胖的flutter基础课程整理的示例,为了平时方便查阅,同时希望能和大家一同进步~ Flutter基础组件 Hello world import 'package:flutter/mate ...

  5. Flutter 基础组件之 Text

    终于安装好了 Flutter 的环境,既然入了坑,就一点一点学吧,Flutter 可以说一切皆组件吧,所以要熟练掌握各个基础组件的 API,然后才能在面对复杂需求的时候才能得心应手的将各个组件组合起来 ...

  6. 【Flutter】StatefulWidget 组件 ( 创建 StatefulWidget 组件 | MaterialApp 组件 | Scaffold 组件 )

    文章目录 一.StatefulWidget 组件 二.创建 StatefulWidget 组件 三.MaterialApp 组件 四.Scaffold 组件 五. 相关资源 一.StatefulWid ...

  7. Flutter之基础Widget

    原文博客地址: Flutter之基础Widget Flutter和Dart系列文章 项目GitHub地址 Flutter作为一种全新的响应式,跨平台,高性能, 完全免费.开源的移动开发框架 Widge ...

  8. iOS 高可控性日历基础组件 - SKCalendarView 的使用和实现思路的分享

    阅读 61 收藏 5 2017-04-02 原文链接:http://www.jianshu.com/p/ce4c64a4d437 SKCalendarView 是一个高可控性的日历基础组件,为了提高应 ...

  9. 【Flutter】Image 组件 ( 加载网络图片 | 加载静态图片 | 加载本地图片 | path_provider 插件 )

    文章目录 一.加载网络图片 二.加载静态图片 三.加载本地图片 四.完整代码示例 五.相关资源 一.加载网络图片 参考 [Flutter]Image 组件 ( Image 组件简介 | Image 构 ...

最新文章

  1. 使用Redis搭建电商秒杀系统
  2. 35岁的程序员是“都挺好”还是“都挺惨”?\n
  3. fzu - 1752 Problem 1752 A^B mod C
  4. 牛客题霸 NC22 合并两个有序的数组
  5. MYSQL优化---hidba
  6. PHP函数操作数组(集合贴)
  7. 机器学习面试题(part5)
  8. 关于sprintf的问题
  9. 获取Linux终端大小及像素值
  10. JZOJ 1667【AHOI2009】中国象棋——dp
  11. 【转】mysql数据库优化大全
  12. Keil安装(带安装软件)
  13. kali系统卸载Docker容器
  14. android 五大框架,YunOS 6要做手机界Wintel 破功Android五大怪
  15. OCR之表格结构识别综述
  16. 用js计时器写倒计时
  17. 计算机重启 ie 被改,ie被修改怎么办 ie被修改的解决方法【详解】
  18. mapStruct测试成功以及报错总结
  19. python 对角矩阵_numpy创建单位矩阵和对角矩阵的实例
  20. 基于Qt的Windows平台桌面蓝牙调试器软件

热门文章

  1. 基于Tensorflow2 Lite在Android手机上实现时间序列温度预测(二)
  2. 全球排名前十的美资投行由于全球业务增长速度较快,需要及时补充技术人员,将于3月4日(周六)在其上海office举办Super Saturday的招聘活动,招聘33名Java开发工程师。欢迎积极报名并推
  3. 获取top等之类命令的部分打印内容
  4. 稳压二极管主要参数及选型(及常见电阻封装的可过的电流)
  5. 中国手机行业发展现状及趋势,行业市场集中度上升「图」
  6. 【Pandas】解决在pandas中的两个正数相乘结果为负值
  7. (C语言)输入一行字符,将此字符串中最长的单词输出。
  8. ssh 用户名密码登录
  9. 协同OA行业五大关键词
  10. C函数库(libc、glibc、uClibc、newlib)