• 张简
    2019-07-23
    42节和43节其实可以提前讲讲,大多数开发者都是这种混合接入方式,和具体开发无关。首先遇到的就是混合接入问题。
     1
     19
  • 许童童
    2019-07-23
    在构造函数中Widget还未生成,所以只能做一些参数传入的处理,initState中可以做初始化State的变量的操作。

    作者回复: 赞

    
     11
  • 这得从我捡到一个鼠标...
    2019-08-26
    实际上打印监听的时候发现并不是文中所描述的那样。
    从前台退居后台的时候执行inactive->paused
    从后台进入前台的时候执行inactive->resumed
    paused和resumed不会同时执行,是不是文中有错?
    AppLifecycleState

    作者回复: 你理解错了,我来帮你梳理下:
    1.从前台退居后台,打印的是inactive->paused,但你忘了它之前的状态是resumed;
    2.从后台进入前台,打印的是inactive->resumed,但你忘了它之前的状态是paused

     1
     8
  • jia58960
    2019-07-24
    为啥navigator.push()之后当前的widget deactivate了还要build一次?对老师给的工程代码验证了确实是这样,还请老师解释下

    作者回复: 因为State在视图树的相对位置变了

     1
     6
  • 离尘不离人คิดถึ...
    2019-10-15
    `width WidgetsBindingObserver` 这里没看懂, 明明用的是 with `WidgetsBindingObserver`,但是代码却使用的是 `WidgetsBinding`,查看源码,发现 `WidgetsBindingObserver` 只是 `binding.dart` 里面的一个抽象类;老师这里能解答下吗

    作者回复: WidgetsBinding是一个连接上层Widget回调与底层Flutter引擎实现的一个抽象胶水类,在不同的平台有不同的实现(比如在单元测试中是TestWidgetsFlutterBinding,在UI开发中是WidgetsFlutterBinding),所以我们需要在代码中用WidgetsBinding.instance获取特定的实例,而WidgetsBindingObserver只是一个接口而已

     1
     2
  • madroid
    2020-01-14
    App 生命周期中有没有类似 Android Application.onCreate() 的回调,在这里做App初始化的一些操作。或者 APP 初始化的操作应该放在哪里?
    
     1
  • 咖啡凉了
    2019-08-26
    在iOS中,我们会用到viewWillAppear中实现方法刷新上一个页面的数据。Flutter中有类似的生命周期吗,怎么解决子页面数据提交后,返回到上一个页面刷新视图

    作者回复: 参考21节“路由与导航”里面提到的页面关闭参数

     1
     1
  • Geek_b09541
    2019-07-24
    大牛,你好,我想买一本关于flutter的工具书,麻烦推荐一本

    作者回复: 不推荐买书,如果想要快速了解一些核心Feature可以看看
    官方的cookbook: https://flutter.dev/docs/cookbook和wendux写的Flutter实战:https://book.flutterchina.club/

     1
     1
  • 许童童
    2019-07-23
    老师你好,为什么项目启动时Resolving dependencies和Running Gradle task 'assembleDebug'阶段要很长的时间,大概2分钟。有什么办法可以加快速度吗?

    作者回复: Gradle默认每次编译都会resolve dependencies,每次都会去进行网络请求。如果你那边访问jCenter很慢,这个步骤就卡住了。

    你可以临时在Project Preferences的Gradle那里启用Offline work,不过新增依赖之后你需要在把这个设置改回来

    
     1
  • 王富贵
    2020-01-12
    请问,我用前面创建的flutter_app里添加APP的生命周期回调,从后台到前台为什么没有触发inactive状态呢?
    
    
  • 承香墨影
    2019-11-15
    您好,有问题请教。
    AppLifecycleState 中还有一个 suspending 的状态,这个状态表示什么意义?会在什么场景下触发?

    作者回复: 表示程序被暂时挂起,这是操作系统底层暴露的状态,不是所有的平台都有(比如iOS就没有),所以这个状态可以理解成基本没用

    
    
  • 赤茗
    2019-10-24
    而且那四个(PostFrameCallback)对应的状态 顺序为 inactive->paused->inactive->resume(只是唤起的过程)完整的日志如下:
    I/flutter (27127): AppLifecycleState.inactive
    I/flutter (27127): AppLifecycleState.resumed
    I/flutter (27127): PersistentFrameCallback
    I/flutter (27127): PersistentFrameCallback
    I/flutter (27127): PersistentFrameCallback
    I/flutter (27127): PersistentFrameCallback
    I/flutter (27127): PersistentFrameCallback
    I/flutter (27127): PersistentFrameCallback
    I/flutter (27127): PersistentFrameCallback
    I/flutter (27127): PersistentFrameCallback
    I/flutter (27127): PostFrameCallback AppLifecycleState.inactive
    I/flutter (27127): PostFrameCallback AppLifecycleState.paused
    I/flutter (27127): PostFrameCallback AppLifecycleState.inactive
    I/flutter (27127): PostFrameCallback AppLifecycleState.resumed
    展开

    作者回复: 导航站切换,前后台切换会涉及到多个页面的视图树调整和重新渲染,所以会刷新多次。但每次渲染完成都会调postframecallback是确定的

    
    
  • 赤茗
    2019-10-24
    老师,我在didChangeAppLifecycleState 里加了Frame的两个回调,发现唤起的时候PostFrameCallBack调了四次,而我在setStatus里加这两个回调时只调用了一次,为什么会出现这种情况?

    作者回复: 前后台切换,导航站切换会涉及到多个页面的Widget树的调整和重新渲染

    
    
  • Carlo
    2019-10-09
    除了需要监听 App 的生命周期回调做相应的处理之外,有时候我们还需要在组件渲染之后做一些与显示安全相关的操作。

    能具体解释一下这个是什么意思么?比如说什么是显示安全相关的操作?

    作者回复: 比如你要等界面上的某个元素出现之后,才认为视图渲染完成,就可以用这个机制。具体可以参考40节分享

    
    
  • 微笑美男😄
    2019-10-08
    课件下载后,怎么用visual studio code 打开。我用Mac 发现无法打开

    作者回复: 报什么错?

    
    
  • Geek_0793f1
    2019-08-12
    statelessWidget 没有 类似 deactivate 之类的生命周期钩子吗

    作者回复: Widget就是一个配置,所以不涉及到生命周期。Element有

    
    
  • YangHong
    2019-07-30
    inactive处于不活动状态是指线程都挂起了吗,为什么前台切后台要经历这个处理?

    作者回复: 是个中间过渡状态,一般没什么用

    
    
  • Mr.J
    2019-07-27
    老师,Flutter的源码是怎么分类的,感觉分包好乱,经常找不到源码,不知道该去哪儿找

    作者回复: 试试在IDE上 Command+鼠标点击 类名?

    
    
  • Bula
    2019-07-26
    可能是我前面的知识没理解透彻 切换一个新的视图,当前的widget就会回调deactivate ,移除了。那返回回来 这个视图是需要再重建一次吗 ,返回操作很常见,为什么要移除前一个视图的widget啊

    作者回复: 因为State的相对位置变了呀。不过放心UI是不会刷新的

     1
    
  • Geek_60d7a7
    2019-07-24
    关于dart的mixin,老师能讲讲么,尤其是mixin on,看了好多资料都还不是很清晰…

    作者回复: Mixin就是以非继承的方式实现代码复用的一种机制而已呀

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