番外篇-Flutter初识三问

番外篇-Flutter初识三问

系列:《Flutter从入门到放弃》-04 番外篇 微信公众号:南京Android部落 阅读本文将花费您5分钟左右的时间

问题

  • StatefulWidget与StatelessWidget使用时机?
  • Flutter如何加载图片(网络或者本地)?
  • Scaffold是什么?

讲讲State

在Android中,您可以通过直接对view进行改变来更新视图。然而,在Flutter中Widget是不可变的,不会直接更新,而必须使用Widget的状态。

这是Stateful和Stateless widget的概念来源。一个Stateless Widget就像它的名字,是一个没有状态信息的widget。 例如:在Android中,如果您只想将一个logo使用ImageView展示出来。logo在运行时不会发生改变,在Flutter中可以通过StatelessWidget实现。

但是,如果您希望通过网络请求数据后来更新您的的界面,则需要使用StatefulWidget,并通知Flutter框架(setState)需要更新该widget。

记住官方的一个规则:如果一个widget发生了变化(用户与它交互),它就是有状态的。但是,如果一个子widget对变化做出反应,而其父widget对变化没有反应,那么包含的父widget仍然可以是无状态的widget

加载图片

支持格式:JPEG、WebP、GIF、PNG、BMP、WBMP 主要是通过:

  • 网络
1new Image.network(
2          imgUrl,
3          scale:1.0)
  • 本地
1// 注意path需要包含图片的后缀的
2new Image.asset(path, width:24.0, height: 24.0);

另外在加载资源图片是需要在pubspec.yaml中声明(以上一节的项目为例):

 1flutter:
 2  uses-material-design: true
 3  assets:
 4    - images/tab_association_grey.png
 5    - images/tab_association_yellow.png
 6    - images/tab_discovery_grey.png
 7    - images/tab_discovery_yellow.png
 8    - images/tab_me_grey.png
 9    - images/tab_me_yellow.png
10    - images/tab_sport_grey.png
11    - images/tab_sport_yellow.png
12    - images/tab_training_yellow.png
13    - images/tab_training_grey.png

就上面这些方式吗?答案是否定的。肯定还有别的方式,本期不做介绍,后面用到的时候再补充。

Scaffold是什么

Scaffold实现了Materia design(材料设计)风格的布局结构。Scaffold widget提供了实现:appBar、floatingActionBar等材料设计风格控件的API。所以当我们想要使用MateriaDesign的一些布局方式就会选择Scaffoldwidget。

预告

下一节我们将继续围绕实际项目,通过Flutter来实现效果。主要围绕SliverAppBar的实现效果来讲解。


原文发布于微信公众号 - 南京Android部落(nj_android)

原文发表时间:2018-08-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木子昭的博客

往"某度文库"上传资源之前,请先做好这些...想到一句好玩的话:知道是你干的,只是懒得抓你!如果你喜欢python,喜欢故事,请点赞或关注我!您的支持是对作者最大的鼓励!

先讲个相关的故事:匿名黑客的"复仇行动" 2010年12月10日,黑客组织匿名者发布了一条消息,解释了他们发起最近一次代号为”复仇行动”的攻击的大致动机(Pr...

38213
来自专栏张善友的专栏

在你的网站集成Wiki系统 WikiPlex

Wikiplex 是一种在 .NET Framework 上所开发,具有处理 Wiki 编辑宏功能的小型函式库组件,它提供了数种编辑样式的格式,以让使用者可以类...

2228
来自专栏小樱的经验随笔

深入理解USB流量数据包的抓取与分析

在一次演练中,我们通过wireshark抓取了一个如下的数据包,我们如何对其进行分析?

3702
来自专栏测试开发架构之路

Android软件测试Monkey测试工具

前言: 最近开始研究Android自动化测试方法,对其中的一些工具、方法和框架做了一些简单的整理,其中包括android测试框架、CTS、Monkey、Monk...

1K11
来自专栏小李刀刀的专栏

[译]HTML验证的价值探讨

[译]HTML验证的价值探讨 作者:Nicholas C. Zakas 原文:http://www.nczonline.net/blog/2010/08/17/...

3555
来自专栏小巫技术博客

应用被强杀了怎么办

972
来自专栏androidBlog

360面试总结(Android)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

911
来自专栏Crossin的编程教室

【Python 第3课】IDE

昨天的课发出去之后,有不少同学发来了反馈,有完成截屏的,也有遇到问题的。一些问题突然让我意识到,很多地方自己描述得不是很到位,会产生歧义,或者干脆就很难听懂。比...

2916
来自专栏哲学驱动设计

性能优化总结(一):前言

    最近一直忙着学2010、WPF、看架构师教程、学英语,搞得都没时间写博客了。     最近在GIX4项目上做了一些性能方面的优化,为了方便和同事们分享经...

21310
来自专栏哲学驱动设计

产品前端重构(TypeScript、MVC框架设计)

最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容。 公司期望把某一管理类信息系统从项目代码中抽取、重构为一个可复用的产品。该系统的...

2738

扫码关注云+社区

领取腾讯云代金券