最近有机会接触Flutter, 一个现有的Flutter工程, 别人写的, 没改完BUG就跑了, 所以BUG无数, 坑无数, 让人很无语.
首先说一下交互体验, 个人觉得加载Flutter页面跟加载H5相差不多, 性能上和原生差了好几条街, 根本就不是一个数量级上的东西. 不知道为什么那么多人推崇? 难道是跨平台方便的原因? 还是其他? 呃...,总之对Flutter特别想吐槽....
好了, 上面都是个人吐槽..勿喷...
工程师这样的, 主界面有几个Tab, 每个Tab对应一个页面. 这个几个Tab和对应的界面不是固定的, 在某种情况下, Tab和对应的界面会发生根本性变化.
比如 Tab 对应的 A, B , C, D这几个按钮, 分别对应AWidget, BWidget, CWidget, DWidget.
变化后会Tab 变成X, Y, Z, 界面也变成XWidget, YWidget, ZWidget.
原来代码:
//https://blog.csdn.net/x531305158/article/details/107384774
@override
Widget build() {
ScreenUtil.init(context);
return WillPopScope(
onWillPop: _back,
child: PageView(
controller: _pageController,
children: _pages,
physics: NeverScrollableScrollPhysics(),
),
);
}
原主人是这样写的, 打算通过修改_pages动态添加修改的页面. 发现完全行不通.... 建议大家去看下源码, 就不带大家看了..
PageView所调用, 是这样的, fulState (add children:) ->build(lessState). 发现当子页面初始化后, 就不能在对这个子页面Widget修改(是指不能移除等操作).
修改后:
//https://blog.csdn.net/x531305158/article/details/107384774
@override
Widget build() {
return WillPopScope(
onWillPop: _back,
child: flag? PageView(
controller: _pageController,
children: _onePages,
physics: NeverScrollableScrollPhysics(),
) : PageView(
controller: _pageController,
children: _twoPages,
physics: NeverScrollableScrollPhysics(),
),
);
}
对我这种Flutter初学者, 造成成吨的暴击伤害...
https://blog.csdn.net/x531305158/article/details/107384774
哈哈, 随手mark...