2019最新Flutter 面试知识点集锦(二)

本文是2019年Flutter面试知识点的第二部分,涉及PlatformView的概念,它是如何利用VirtualDisplay和Surface实现原生View嵌入的。此外,还讨论了Flutter的手势事件处理机制、ListView滑动原理以及状态管理。Platform Channel包括BasicMessageChannel、MethodChannel和EventChannel,用于Dart与原生代码的通信,并提示其非线程安全。最后,文章解释了Android启动页的工作原理,如何通过meta-data配置实现闪屏效果。
摘要由CSDN通过智能技术生成

紧接上文2019最新Flutter 面试知识点集锦(一)

PlatformView

Flutter 中通过 PlatformView 可以嵌套原生 View 到 Flutter UI 中,这里面其实是使用了 Presentation + VirtualDisplay + Surface 等实现的,大致原理就是:

使用了类似副屏显示的技术,VirtualDisplay 类代表一个虚拟显示器,调用 DisplayManager 的 createVirtualDisplay() 方法,将虚拟显示器的内容渲染在一个 Surface 控件上,然后将 Surface 的 id 通知给 Dart,让 engine 绘制时,在内存中找到对应的 Surface 画面内存数据,然后绘制出来。em… 实时控件截图渲染显示技术。

  • Flutter 的 Debug 下是 JIT 模式,release下是AOT模式。
  • Flutter 中可以通过 mixins AutomaticKeepAliveClientMixin ,然后重写 wantKeepAlive 保持住页面,记得在被保持住的页面 build 中调用 super.build 。(因为 mixins 特性)。
  • Flutter 手势事件主要是通过竞技判断的:
    主要有 hitTest 把所有需要处理的控件对应的 RenderObject , 从 child 到 parent 全部组合成列表,从最里面一直添加到最外层。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值