4- flutter - Widget
Widget
Flutter 中的view 就是widget
1 无状态和有状态的Widget
StateslessWidgets 适用于用户界面不依赖于用户的信息的时候
StatesfulWidgets 有状态的,例如HTTP 网络请求或者用户交互之后收到数据动态表更新UI
这就是一个无状态的Widget
Text("we like bom",style: new TextStyle(fontWeight: FontWeight.bold,fontSize: 55)
2 在Flutter 中通过widget 树来声明布局。
一个带有样式的按钮
body: Center(child: MaterialButton(onPressed: (){print("Btn Click");},child: Text("Click Me"),padding: EdgeInsets.only(left: 25,right: 25), ),
3 动态添加和删除组件
传入一个函数的表达式,来动态的进行widget 切换
4 如何给widget 来做动画
AnimationController 是一个可以暂停 寻找,停止,反转动画的Anamation 类型。
需要一个Ticker 当vsync 发生是来发送信号,并且在每一帧运行时创建一个 介于0-1之间的线性插值,可以创建一个或者多个Animation 并且附加给controller。
5 如何进行绘图
CustomPaint 和 CustomPainter 实现绘图的效果
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';void main() => runApp(MyApp());class MyApp extends StatelessWidget {// This widget is the root of your application.@overrideWidget build(BuildContext context) {return MaterialApp(title: 'SK DDDSKKS',theme: ThemeData(primarySwatch: Colors.blue,),home: _MyCanvas(), );}
}// 创建一个类 继承自 CustomPainter
class MyCanvasPainter extends CustomPainter{@overridevoid paint(Canvas cans,Size size){// 1 绘制一个圆形Paint paint = Paint();paint.color = Color.fromARGB(200, 150, 10, 1);cans.drawCircle(Offset(100,200), 50, paint); // 2 绘制一个方形Paint paint2 = Paint();paint2.color = Color.fromARGB(60, 200, 15, 1);// 第一点位 左上角 第二个点位 右下角Rect rect = Rect.fromPoints(Offset(50,300), Offset(350,500));cans.drawRect(rect, paint2);}bool shouldRepaint(MyCanvasPainter oldDelegate) {return false;}bool shouldRebuildSemantics(MyCanvasPainter oldDelegate) {return false;}}class _MyCanvas extends StatelessWidget{@overrideWidget build(BuildContext context) {// TODO: implement buildreturn Scaffold(body: CustomPaint(painter: MyCanvasPainter(),),);}}
6 构建自定义的widgets
在Flutter 中 遇见组合多个小的widgets 来构建一个新的自定义的widgets
// 创建一个新的按钮class SKButton extends StatelessWidget{final String lable;SKButton(this.lable);@overrideWidget build(BuildContext context) {return new RaisedButton(onPressed: (){print("Click me");},child: new Text(lable),);}}class _MyCanvas extends StatelessWidget{@overrideWidget build(BuildContext context) {// TODO: implement buildreturn Scaffold(body: SKButton("这是我的按钮"),);}}
4- flutter - Widget相关推荐
- 拆!对比详解 Flutter Widget 和 CSS,你关心的布局原理都在这儿了
简介: 这篇文章专门对比 Flutter Widget 的布局原理和 CSS 布局原理的差异,分享在对接过程中会遇到的问题和解决方案,帮大家理一理思路,内容可以分为这几部分:1.CSS 和 Widge ...
- Flutter Widget嵌套深,修改代码麻烦?
Flutter Widget嵌套深,修改代码麻烦? 背景 解决方法 代码 修改 pubspec.yaml 以支持 Extension: Widget扩展代码: 实际使用: 背景 许多人初次接触Flut ...
- Flutter Widget详解
Flutter Widget详解 Widget是Flutter应用程序用户界面的基本构建块.每个Widget都是用户界面一部分的不可变声明. 与其他将视图.控制器.布局和其他属性分离的框架不同,Flu ...
- Flutter Widget原理(一)
前言 使用过Flutter的同学,应该都听过一句话"everything is a widget--在Flutter中万物皆是Widget". 这句话虽然不能说,Flutter开发 ...
- Flutter Widget
文章目录 一.Widget分类 二.widget的状态 三.根widget 四.Basics 4.1 模板和主题 4.2 Text文本 4.3 图片 4.4 凸起按钮 4.5 其他widget 4.5 ...
- Flutter Widget截图
Flutter中截图的主要类是RepaintBoundary. 废话不多说,直接上代码: import 'dart:typed_data'; import 'dart:ui' as ui; impor ...
- 1、Flutter Widget(IOS Style) - CupertinoApp;
在Flutter中设计风格主要为Material Design风格,Flutter也支持IOS设置风格Cupertino的一系列Widget,分别对应flutter的包下的material目录下的 ...
- Flutter State生命周期 Flutter Widget生命周期 Flutter 应用程序生命周期
题记:不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼博过,尽力过,一切问心无愧 在 Flutter应用程序中,生命周期涉及两个,一个是 Widget 的生命周期,一个是应用程序的生命周期,本 ...
- flutter widget super(key: key)的作用(五)
在浏览flutter的代码的时候,会发现widget类总是有一个可选的key参数.那么为什么需要有这个参数呢?带着疑惑去研究了下,总算找到了答案. key参数简单的理解,就是widget的id,用来标 ...
- 如何使用Flutter Widget构建响应式应用程序评论
Changes are usual for an app configuration. When the user rotates the phone either vertically or hor ...
最新文章
- Django报错:mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required, you have 0.9.3的解决办法
- [原]关于鼠标滚轮的编程
- WebGL Shader 环境搭建
- python超市售货统计程序_用Python实现简易超市售货系统
- C++ primer 第8章 IO库
- android交互xml代码,Unity 与Android的交互(Android studio)
- php7isapi,Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程
- 技术攻关:从零到精通
- Aborted (core dumped)
- Java 获取主机ip地址(ipv4)
- 科学家正在尝试取用脂肪细胞3D打印人类心脏
- 小米MIUI里的便签APP是如何实现插入图片功能的?
- 大众点评 与 美团 与饿了么
- oj3014文件格式变换
- 同步辐射X射线断层扫描成像技术的应用领域和场景
- mysql squence分布式,xsequence分布式序列号生成组件1.0版本终于发布了
- 【python】关于一些奇奇怪怪的四舍五入问题
- mysql数据分析统计表_mysql 数据分析如何实现日报、周报、月报和年报?
- 04.南瓜树低代码平台平台 分析后的感想
- 仿《文明》游戏制作日志3
热门文章
- 基于QProbe创建基本Android图像处理框架
- Beta 冲刺 (1/7)
- ntpdate[31915]: the NTP socket is in use, exiting
- IIS6 MVC3 配置
- Android 入门开发
- SQL Server 数据库中的 MD5 和 SHA1加密算法
- Web service到底是什么?
- Intellij IDEA单元测试提示Test events were not received
- PHP源代码分析-字符串搜索系列函数实现详解
- 【Qt】在ubuntu上打包发布Qt程序,可以不依赖Qt环境