当前位置:   article > 正文

Flutter笔记(2)flutter的widget一切皆为组件_flutter empty_widget:

flutter empty_widget:

一切皆为组件

Flutter的核心理念:一切皆为Widget(同Java万物皆对象,我们从来都不缺对象,只是缺一个new)。手机应用里的所有东西(按钮、输入框、卡片、列表、布局方式、动画处理等)都可以作为组件Widget,开发者通过可组合的空间集合、丰富的动画库实现了富有感染力应用界面设计。
所以:Flutter具有一只的统一对象模型:Widget

1.Widget下面有两大类组件:(如图例所示)
图参考与网络,如有雷同,敬请谅解

2.怎么更形象的理解Widget呢?

  • 一个界面组件(输入框、按钮)
  • 一种布局(填充、滚动)
  • 一种手势处理(GestureDetector)

Widget和Android的布局控件一样,每个Widget都有丰富的属性和方法(颜色、大小、背景、边距等)。
每个Widget跟Android布局控件相似的都有回调方法处理(单击事件回调、手势事件回调等)
例如:

  • bottom:底部间距属性
  • left:左侧间距属性
  • right:右侧间距属性
  • toString:转换成字符串方法

等,以上还有很多方法和属性,自我们实际的应用中供我们来使用。如果Widget自带的属性不能满足我们项目设计的需求时,当然同我们Android和IOS一样,可以自定义Widget属性和方法。

3.必要时Widget需要自定义

如果你不是没有任何开发经验,那么你一定知道任何app里都有可能有重用性比较高的控件。所以对于那么重用性比较高的,或者需要你自定义的控件的,我们需要将它们给封装起来,以便下次或者其他app中继续使用。这个时候就可以自定义Widget封装起来,以供我们在其他的地方使用。

4.Widget的交互状态
如果Widget需要根据用户交互或其他原因进行更改,则此Widget是有状态的,情况如下:

  • Stateless widgets 无状态控件是不可变的, 这意味着它们的属性不能改变 - 所有的值都是最终的,使用的时候要继承StatelessWidget
  • statefullWidget有状态控件。持有的状态可在widget生命周期中发生变化实现一个 stateful widget 至少需要两个类:
    (1)一个 StatefulWidget
    (2)一个 State类。 StatefulWidget类本身是不变的,但是 State类在widget生命周期中始终存在,且可改变:
    实现方式:
1.自定义一个类继承自statefulWidget
2.重写createState()方法,为该statefulWidget创建一个state对象
3.自定义一个状态类继承自State,重写build()方法,根据需要的逻辑处理返回widget,
build方法会在view状态改变时进行回调,重新渲染(自动响应式框架)
  • 1
  • 2
  • 3
  • 4

其中State类是一个组件的UI数据模型,是组件渲染时的数据依据,一系列的事件都会出发setState方法来推动状态机进行相应,状态的生命周期如下图(参考书:Flutter技术入门与实践):
状态的生命周期

更多文章资源,欢迎关注:程序猿阵线联盟

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/484911
推荐阅读
相关标签
  

闽ICP备14008679号