聊一聊Flutter的setState()
Flutter 里面包含两种widget 一种可变的,一种不可变的;
在可变的widget中可以使用 setstate(){} 函数。
官方也给出了例子:
_onClick(){
setState(){
title = "123";
}
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Text("$title");
}
改变title的内容,视图也会跟着改变。类似响应式编程?真的吗?
我们仔细看看:
我们改改试试遮掩怎么样?
_onClick(){
title = "123";
setState(){
}
}
会不会发生改变呢?
YES.
WHY?
这需要了解的有flutter的渲染机制了,她的渲染机制用的是skia,和web的渲染是一样的,非常个轻量化和快速。
setState(){}的调用时吧视图重新绘制了一遍,但是并不是把整个视图diss掉再从新绘制。而是调用了build方法,绘制只是绘制不一样的地方,这段知识会在flutter的渲染里详细讲解。
聊一聊Flutter的setState()的更多相关文章
- Flutter 的setState与FutureBuilder及EasyRefresh示例
用setState改变状态 class CpwsList extends StatefulWidget { _CpwsListState createState() => _CpwsListSt ...
- Flutter竟然发布了1.5版本!!!!
2018年2月,Flutter推出了第一个Beta版本,在2018年12月5日,Flutter1.0版本发布,当时用了用觉得这个东西非常好用,对于当时被RN搞的头皮发麻的我来说简直是看到了曙光.而在昨 ...
- 如何开发优质的 Flutter App:Flutter App 软件测试指南
继上一场GitChat文章发布之后,博主又为朋友们带来另一场Chat.这一次我们主要聊一聊Flutter App的测试环节. 众所周知,应用的功能越多,手动测试的难度就越大.一套完整的自动化测试将帮助 ...
- Flutter 在mixin中使用setState
相关问题 创建mixin import 'package:flutter/material.dart'; mixin JobsMixin<T extends StatefulWidget> ...
- 编写第一个Flutter App(翻译)
博客搬迁至http://blog.wangjiegulu.com RSS订阅:http://blog.wangjiegulu.com/feed.xml 以下代码 Github 地址:https://g ...
- Flutter 即学即用系列博客——05 StatelessWidget vs StatefulWidget
前言 上一篇我们对 Flutter UI 有了一个基本的了解. 这一篇我们通过自定义 Widget 来了解下如何写一个 Widget? 然而 Widget 有两个,StatelessWidget 和 ...
- Flutter 即学即用系列博客——09 MethodChannel 实现原生与 Flutter 通信(二)
前言 上一篇我们讲解了如何通过 EventChannel 实现 Android -> Flutter 的通信. 并且也看到了 Flutter 内部 EventChannel 源码也是对 Meth ...
- Flutter 即学即用系列博客——09 EventChannel 实现原生与 Flutter 通信(一)
前言 紧接着上一篇,这一篇我们讲一下原生怎么给 Flutter 发信号,即原生-> Flutter 还是通过 Flutter 官网的 Example 来讲解. 案例 接着上一次,这一次我们让原生 ...
- Flutter 即学即用系列博客——08 MethodChannel 实现 Flutter 与原生通信
背景 前面我们讲了很多 Flutter 相关的知识点,但是我们并没有介绍怎样实现 Flutter 与原生的通信. 比如我在 Flutter UI 上面点击了一个按钮,我希望原生做一些处理,那么原生怎么 ...
随机推荐
- Python3-pymysql模块-数据库操作之MySQL
博客转载 http://www.cnblogs.com/alex3714/articles/5950372.html 代码示例 import pymysql conn = None cursor = ...
- html+css快速入门教程(3)
练习: 1.画盒子 2.相框 5 基础选择器 5.1 id选择器 ID选择器与类选择器的定义与引用方式类似,只是定义的符号不一样.ID通常表示唯一值,因此,ID选择器在CSS 中通常只出现一次.如果出 ...
- cp5200的一般步骤
cp5200的一般步骤: 1.创建数据对象 hObj = CP5200_CommData_Create(nCommType, id, GetIDCode()); 2.生成所需要的数据,如 :生成设置亮 ...
- 如何判断一个String字符串不为空或这不为空字符串
如何判断一个String字符串不为空或这不为空字符串 转载兵哥LOVE坤 最后发布于2018-07-27 00:00:05 阅读数 5144 收藏 展开 1.校验不为空: String str ...
- 网络基础和 TCP、IP 协议
1.网络基本概念 1.1 什么是网络:一些网络设备按照一定的通讯规则(网络协议)进行通讯的系统. 1.2 VPN(虚拟私有网络)加密,相当于专线,从分支机构到总部. 1.3 资源共享的功能和特点: 数 ...
- 泊车SLAM文献整理
1. 泊车: 线车位检测 Geometric Features-Based Parking Slot Detection 译文链接:https://blog.csdn.net/djfjkj52/art ...
- 虚拟机 - 桥接模式下,虚拟网卡没有 ip
背景 Linux 虚拟机,用桥接模式,敲 ifconfig命令,ens33 没有 ip 即没有红色圈住那部分 解决方案 修改配置文件 vim /etc/sysconfig/network-script ...
- 记一次开发CefSharp做浏览器时Shopify绑定不上Paypal问题
问题:CefSharp做浏览器时Shopify绑定不上Paypal. shopify绑定Paypal的流程大概是如下图所示 步骤1 步骤2 步骤3 步骤4 出现问题大概是在绑定最后一步,并没有如愿的返 ...
- 大话一个CPU(沙子是如何影响未来的)
大话一个CPU(沙子是如何影响未来的) CPU是个啥? 先大体上了解一下 中央处理器 (英语:Central Processing Unit,缩写:CPU),是计算机的主要设备之一,功能主要是解释计算 ...
- java 面向对象(四十三):反射(七)反射应用四:动态代理
1.代理模式的原理:使用一个代理将对象包装起来, 然后用该代理对象取代原始对象.任何对原始对象的调用都要通过代理.代理对象决定是否以及何时将方法调用转到原始对象上. 2.静态代理2.1 举例:实现Ru ...