欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

边学边写flutter

程序员文章站 2024-03-21 19:03:22
...

写在前面

第一次接触flutter在18年的时候,那时候的flutter还像个刚出生的婴儿,无论是SDK还是社区的支持都不是很完善。经过两年时间,社区博客,和各大公司都开始关注flutter,可以明显的感觉flutter真正火起来了,于是产考了Android_zhu_jiang《历时三天,完成了Flutter版本的玩安卓项目,自己边学边写花了一周时间写完了自己的第一个flutter项目,因为没有mac所以全程是在windows环境下开发,在安卓系统调试,所以没有对ios系统做过测试,不知道是否能够正常运行。

项目地址

开发过程中遇到的问题:

首先是闪屏页,根据网上的一些方案,是在MaterialApp下将home设置成闪屏页,然后在计时结束之后跳转到内容页面并将其关闭,但是这就导致MaterialApp被回收而无法操作所以无法修改主题,所以我通过标识符来动态改变MaterialApp下home的内容来实现闪屏页,具体代码如下:

child: MaterialApp(
  //取消显示debug
  debugShowCheckedModeBanner: false,
  //注册路由观察者
  navigatorObservers: [BotToastNavigatorObserver()],
  theme: ThemeData(
    primaryColor: ColorUtil.currentThemeColor,
    //右滑返回
    platform: TargetPlatform.iOS,
  ),
  title: "玩安卓",
  home: _showSplashPage ? SplashPage() : HomeView(),
),
_countDown() {
  var duration = Duration(seconds: 3);
  Future.delayed(duration, () {
      setState(() {
        _showSplashPage = !_showSplashPage;
      });
  });
}

第二是使用flutter_webview_plugin插件时,showModalBottomSheet无法正常显示,所以将插件改为了官方提供的webview_flutter,

第三是在cookie的持久化管理时,因为cookie在web端使用比较频繁,而移动端较少使用导致不够了解,所以花了较长时间,最后通过dio_cookie_manager插件来做cookie持久化实现了效果。

第四,由于flutter的生命周期没有类似安卓的onResume,而无法在当前页面修改了上一页的item数据时,实时刷新上一页的list数据,导致在修改关注时,返回上一页重新进入时关注状态错误。

解决方案可以采用EventBus去通知需要更新的list,因为效果不是很满意,所以就没有具体编码实现了

第五,使用过程中发现flutter的WebView无法播放视频,在官方的文档中也没找到视频播放的接口,所以暂时没有解决

工作过程中遇到的话,可能只能采用nativi去实现了,如果有知道怎么播放视频的大佬喜欢可以留言告知

总结

通过一个demo写完,感觉flutter虽然已经比较完善,但是依然有很多功能没办法很好的实现导致只能采用nativi混合开发来实现。

最后上一下界面

边学边写flutter边学边写flutter边学边写flutter边学边写flutter边学边写flutter

相关标签: flutter