二 Flutter开发实战高仿微信发现页( 五 )

[104new Icon(choice.icon, size: 128.0, color: textStyle.color),105new Text(choice.title, style: textStyle),106],107),108),109);110}111 }112 113 void main() {114runApp(new AppBarBottomSample());115 }
运行效果:
3. 用法
2.2.8简介
定义应用的logo,该控件受约束 。实例
import 'package:flutter/material.dart';2 3 void main() {4runApp(new FadeAppTest());5 }6 7 class FadeAppTest extends StatelessWidget {8// This widget is the root of your application.9@override10Widget build(BuildContext context) {11return new MaterialApp(12title: 'Fade Demo',13theme: new ThemeData(14primarySwatch: Colors.blue,15),16home: new MyFadeTest(title: 'Fade Demo'),17);18}19 }20 21 class MyFadeTest extends StatefulWidget {22MyFadeTest({Key key, this.title}) : super(key: key);23final String title;24@override25_MyFadeTest createState() => new _MyFadeTest();26 }27 28 class _MyFadeTest extends State with TickerProviderStateMixin {29AnimationController controller;30CurvedAnimation curve;31 32@override33void initState() {34controller = new AnimationController(duration: const Duration(milliseconds: 2000), vsync: this);35curve = new CurvedAnimation(parent: controller, curve: Curves.easeIn);36}37 38@override39Widget build(BuildContext context) {40return new Scaffold(41appBar: new AppBar(42title: new Text(widget.title),43),44body: new Center(45child: new Container(46child: new FadeTransition(47opacity: curve,48child: new FlutterLogo(49size: 100.0,50)))),51floatingActionButton: new FloatingActionButton(52tooltip: 'Fade',53child: new Icon(Icons.brush),54onPressed: () {55controller.forward();56},57),58);59}60 }
用法 2.2.9简介
占位控件,该控件绘制一个框,表示将来会在该位置添加其他控件 。
这个控件在开发过程中很有用,可提示该处接口还没完成 。
默认情况下,控件的大小自适应其容器 。如果该控件处于无界空间,它将根据给定的和自行调整大小 。
详见:
实例
用法
2.2.10
简介
实例
用法
3.深入研究 3.1 项目结构分析
如上图,下面我们就按个来分析,看一下一个混编工程都有那些不同之处相对我们传统的工程 。首先第一个.文件没有区别,里面就是我们当前工程使用的的版本,接下来一个,就是我们的文件夹,用来存放我们的工程,再下来是我们的asset文件夹,用来存放工程的资源,包括图片,字体,视频等任何资源文件,大家先不看,因为他是一个插件工程,我们最后看,再下来是一个ios文件夹,里面当然是存放我们的ios工程的所有内容,再下来的lib文件夹,则是存放代码的默认目录(可以修改名字,后面详细讲解),最后一个最重要的文件是.yaml文件,这个文件用来配置工程所需要的依赖等,到这里其实我们就从整体上知道了,工程有那些特别的地方,当然还只是停留在一个整体,下面我们以一张图来进行对比,从整体上我们来看一下与传统工程的区别 。
从图中我们可以看到,其实混编工程无非就是多了下面两部分,很容易理解,因为是跨平台的所以,需要一个ios的容器工程,最后一部分就是工程本身的东西,包括他的资源和代码,以及依赖等 。
3.2 项目.yaml文件
文件用于配置的资源依赖、库依赖
#即表示url属性值:url: http://www.wolfcode.cn #即表示server.host属性的值;server:host: http://www.wolfcode.cn #数组,即表示server为[a,b,c]server:- 120.168.117.21- 120.168.117.22- 120.168.117.23#常量pi: 3.14#定义一个数值3.14hasChild: true#定义一个boolean值name: '你好YAML'#定义一个字符串
在:下添加库依赖
dependencies:flutter:sdk:flutter#^表示适配和当前大版本一致的版本,即2.x.x都可,~表示适配和当前小版本一致的版本,即2.1.x都可dio:^2.1.0