摘要:
前言 Color类中颜色以一个int值保存,显示器颜色是由红、绿、蓝三基色组成,每种颜色占8比特,存储结构如下: Bit(位) 颜色 0-7 蓝色 8-15 绿色 16-23 红色 24-31 Alpha(不透明度) Theme组件可以为Material APP定义主题数据(ThemeData)。M 阅读全文
摘要:
前言 在Flutter开发中,状态管理是一个永恒的话题。 一般的原则是:如果状态是组件私有的,则应该由组件自己管理;如果状态要跨组件共享,则该状态应该由各个组件共同的父元素来管理。 对于组件私有的状态管理很好理解,但对于跨组件共享的状态,管理的方式就比较多了,如使用全局事件总线EventBus,它是 阅读全文
摘要:
前言 InheritedWidget提供了一种数据在widget树中从上到下传递、共享的方式,例如在应用的根widget中通过InheritedWidget共享了一个数据,那么便可以在子widget中来获取该共享的数据。InheritedWidget在widget树中数据传递方向是从上到下的,这和N 阅读全文
摘要:
前言 为了避免用户误触返回按钮而导致APP退出,在很多APP中都拦截了用户点击返回键的按钮,然后进行一些防误触判断,比如当用户在某一个时间段内点击两次时,才会认为用户是要退出(而非误触)。Flutter中可以通过WillPopScope来实现返回按钮拦截。 接口描述 const WillPopSco 阅读全文
摘要:
前言 可以用ScrollController来控制可滚动组件的滚动位置。 接口描述 ScrollController({ // 初始滚动位置 double initialScrollOffset = 0.0, // 是否保持滚动位置 this.keepScrollOffset = true, thi 阅读全文
摘要:
前言 CustomScrollView是可以使用Sliver来自定义滚动模型(效果)的组件。它可以包含多种滚动模型,举个例子,假设有一个页面,顶部需要一个GridView,底部需要一个ListView,而要求整个页面的滑动效果是统一的,即它们看起来是一个整体。如果使用GridView+ListVie 阅读全文
摘要:
前言 GridView可以构建一个二维网格列表。需要关注的是gridDelegate参数,类型是SliverGridDelegate,它的作用是控制GridView子组件如何排列(layout)。SliverGridDelegate是一个抽象类,定义了GridView Layout相关接口,子类需要 阅读全文
摘要:
前言 它可以沿一个方向线性排布所有子组件,并且它也可以支持基于Sliver的延迟构建模型。 接口描述 ListView({ Key key, // 可滚动widget公共参数 Axis scrollDirection = Axis.vertical, bool reverse = false, Sc 阅读全文
摘要:
前言 SingleChildScrollView类似于Android中的ScrollView,它只能接收一个子组件。 接口描述 const SingleChildScrollView({ Key key, this.scrollDirection = Axis.vertical, // 是否按照阅读 阅读全文
摘要:
前言 当组件内容超过当前显示视口(ViewPort)时,如果没有特殊处理,Flutter则会提示Overflow错误。为此,Flutter提供了多种可滚动组件(Scrollable Widget)用于显示列表和长布局。 可滚动组件都直接或间接包含一个Scrollable组件,它们包括一些共同的属性, 阅读全文