• 加温后的啤酒
    2019-07-09
    老师,想请教一个问题, 关于setState的。
    下面两种写法有什么本质的区别吗??两种写法都对吗?
    第一种:
    _counter++;
    setState(() {
    });
    第二种:
    setState(() {
      _counter++;
    });
    我用第一种方法运行,发现也没什么问题。。。也可以刷新UI
    展开

    作者回复: 没什么区别,事实上你把_counter++放后面也行。因为Flutter会在下一帧绘制的时候才刷新UI,并不是同步的

     1
     20
  • 尛尛尛坏蛋
    2019-07-09
    Scaffold 快捷实现一个简单页面还是蛮好的,但是看Demo里面的用法,appBar body floatButton 三个是封装在一个层级里面的,也就是说改变了body里面的值,也顺带刷新了appBar 和 floatButton,感觉没这个必要,本身appBar和floatButton是加载一次后不用变化的。如果把Scaffold变成一个自定义的weight,可以把body再包一个层级,把数据源定义到body内部去,这样是否可行?

    作者回复: Widget只是数据的配置,并不负责最后渲染哈。Flutter会在中间收敛真正需要刷新界面的那部分Widget变化

     1
     7
  • 于留月
    2019-07-09
    以内联的方式完成了 Scaffold 页面元素的构建:

    首先,代码简洁,直观,容易阅读;
    其次,类似模板类代码,减少重复冗余代码编写;
    再就是现代语言的“语法糖”。

    作者回复: 是的,除此之外可以直接共享状态

     1
     6
  • 神经蛙
    2019-07-22
    关于“在_MyHomePageState类中,直接在build函数里内联的方式完成Scaffold页面元素的构建”,我有一个问题:
    前文提到“setState方法会通知Flutter更新界面,Flutter收到通知后,会执行Widget的build方法,重新构建”,那么如果在_MyHomePageState类的build函数里内联整个Scaffold页面元素构建,是否就意味着setState后整个Scaffold及其子节点都会重新构建?如果Scaffold的子节点很多,是不是就会带来性能损耗?

    作者回复: 理论上是

     1
     3
  • 大土豆
    2019-07-09
    我想问下,现在国内有没有比较成熟的纯flutter开发的App。

    作者回复: 开源的很多,比如知乎客户端,github客户端

     3
     3
  • 方海栋
    2019-08-04
    什么叫以内联的方式

    作者回复: 将函数体内语句直接插入并取代每一处调用该函数的地方(上下文)

    
     2
  • 信仰年轻
    2019-11-22
    没看出内联,,kotlin和C++的内联都有关键字inline,,这里哪里体现内联了啊??、

    作者回复: 对一个函数而言,内联指的是在不增加调用栈的情况下,在上下文把函数体直接展开;
    对我们这个例子而言,”以内联的方式“指的是把这些可以封装成函数/组件的代码直接在build函数体里展开

    
     1
  • 奔跑的徐胖子
    2019-10-29
    老师,我有个疑问,既然flutter是从上至下的有自己的UI渲染的闭环,那么您说的,最终程序运行是以原生的方式进行的又是什么意思呢,flutter也是调用的原生功能进行功能实现吗

    作者回复: 是指Flutter程序的运行方式最终会打包成Android/iOS平台特定的格式:Android会把Flutter画布打包成FlutterView,iOS则会打包成FlutterViewController

     1
     1
  • 啵一个草莓
    2019-08-09
    请教一个问题:我iOS真机运行一直报错,模拟器能成功,自己的个人apple ID(不是开发者) ,手机也是这个ID,不是可以在真机上运行么?

    作者回复: 可以参考下这篇文章的解决方案(打开iOS目录下的runner工程):https://blog.csdn.net/zhenggaoxing/article/details/79042382

    
     1
  • Miracle_
    2019-07-10
    老师请问下目前Flutter对各种不同屏幕尺寸适配有好的方案吗?

    作者回复: 32节会专门讲”如何适配不同分辨率的手机屏幕?“的

    
     1
  • 熊爸爸
    2019-07-10
    1. 老师在回复中多次提到的“共享状态”指的是什么,是 context 相关的能力吗?
    2. 希望老师能顺带讲讲代码和功能的封装等最佳实战(包括继承、Mixin);
    3. 3个月的时间感觉有点长,要是能加快更新进度就好了。不过还是要说:老师辛苦了!

    作者回复: 1.共享状态指的是能够共享变量。因为他们都在一个类中,所以不需要再传来传去了
    2.会讲的
    3.谢谢:)

    
     1
  • G
    2019-07-10
    老师,为什么要多一个createstate来创建State类呢,像react里面一样直接引用类不行吗?

    作者回复: 设计风格问题

    
     1
  • Young
    2019-07-09
    内联的方式,代码看起来更加直观,如果再增加一个类和方法,只需要将Scaffold的代码抽取到新方法中,在build方法中调用即可

    作者回复: 是的,除此之外能够共享状态

    
     1
  • 雷声大
    2019-10-04
    想问下State 中的widget 是什么时候传过来的?莫非是框架设置的,我们new _MyHomePageState()的时候没有把 widget 传进来,但是State 里面就可以调用 widget.title

    作者回复: 你说对了,是StatefulElement设置的

    
    
  • 极客时间
    2019-09-20
    声名式ui与命令式ui能举个例子不 不太明白啥意思

    作者回复: 可以参考第十篇分享的内容

    
    
  • 🌙
    2019-08-13
    创建应用时提示无法打开kernel-service.dart.snapshot,怎么解决呢?

    作者回复: 可以看看这个issue的解决方案:https://github.com/flutter/flutter/issues/36114

    
    
  • 和小胖
    2019-08-06
    老师,我在那个main.dart这个文件里面打了断点,然后发现每次点击加号按钮时候,Scaffold 类里面的appBar之类的几乎都会走一遍,理论上来说不是只应该只走下面这段代码吗?
    Text(
                  '$_counter',
                  style: Theme.of(context).textTheme.display1,
                )
    难道是说只是走了,但是那些不需要的走的不重绘刷新吗?
    展开

    作者回复: 是的,Flutter底层会做收敛,只有真正需要重绘的才会做渲染。
    可以提前看下第9和第11节分享,里面有提到Widget的渲染过程,以及State的生命周期。

    
    
  • 晨鹤
    2019-08-01
    现在 Android 原生主推 MVVC 架构,也实现了数据驱动 UI,很爽。

    作者回复: 是啊

     1
    
  • 半桶水
    2019-07-19
    请教个问题,通过android studio进行调试,出现error connecting to the service protocol:HttpException:connection closed before full header was received。环境是ubuntu 19.04,flutter v1.7.8,Android studio 3.4.2

    作者回复: 试试 export NO_PROXY=127.0.0.1,localhost

    参考:https://github.com/flutter/flutter/issues/19056

     1
    
  • 晓磊
    2019-07-17
    找到小闪电图标了。但一直是灰色不可用状态。鼠标悬浮提示的快捷键是ctrl-\,按下去不起作用。真机调试。windows系统,AndroidStudio

    作者回复: 模拟器闪电可以用吗

     1
    
我们在线,来聊聊吧