美文网首页
Flutter 爬坑杂记

Flutter 爬坑杂记

作者: 阿毛呀_ | 来源:发表于2020-11-08 12:58 被阅读0次

    最近一直在重构项目,也就没有好好写简书了。今天抽空,记录一下自己在项目的中碰到的一些问题。

    1:flutter_cupertino_date_picker 报错问题 DiagnosticableMixin.png
    修改为: Diagnosticable.png

    Error: Type 'DiagnosticableMixin' not found. class DateTimePickerTheme with DiagnosticableMixin 。 这个报错我是在Flutter 1.20之后版本碰到的。因为DatePickerTheme的DiagnosticableMixin在flutter v1.15.21版本发生了变更,由DiagnosticableMixin改为了Diagnosticable。所以需要在DateTimePickerTheme中将DiagnosticableMixin改成Diagnosticable。网上有说改了也没用的,暂时还没碰到,所以不太清楚。
    附上:GitHub issues

    2:关于Easyrefresh不再支持本地化

    在重构Flutter项目时,因为一些插件文字是英文的。所以就添加了本地化。但是发现EasyRefresh在添加GlobalEasyRefreshLocalizations.delegate时一直报错,import 'package:flutter_easyrefresh/easy_refresh.dart' 也没有被引用。就觉得很奇怪,因为之前就是那么用的。然后去GitHub看了一下,发现是在新版的EasyRefresh中,作者不再维护支持本地化了Easyrefresh

    添加国际化支持.png 解决方式有两种:
    1:按照上面提示的,自行设置ClassicalHeader和ClassicalFooter: ClassicalHeader设置.png
    2:直接去到header.dart / footer.dart里面,直接修改: header.dart直接修改.png
    3:在Flutter中使用本地推送

    目前在项目中我用到的是:flutter_local_notifications: ^0.8.0 。使用方式也简单,在pubspec.yaml中导入插件,然后upgrade。然后就是引入项目了。不过中间有一些注意点,比如安卓的权限管理设置:
    在android-->app-->src-->main-->AndroidManifest.xml中添加

    <!--本地通知所添加的-->
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
        <uses-permission android:name="android.permission.VIBRATE"/>
        <uses-permission android:name="android.permission.WAKE_LOCK"/>
    

    另外我在使用的时候是单独用一个dart文件写了个单利,再初始化。然后在socket收到消息的是时候调用。

    4:Flutter中在listview滑动时出现_positions.isNotEmpty异常解决办法

    在做聊天室功能时,animateTo / jumpTo 到最底部的时候出现这个报错,虽然不会导致崩溃。但是看着碍眼。感兴趣的可以在scrollController 里面全局搜索_positions.isNotEmpty。就能找到这个错误了。
    解决方法就是在执行animateTo / jumpTo 方法之前加个判断if(_scrollController.hasClients).

    5:Flutter在listview中,如何获取当前所在position位置

    我是直接在initState的时候,给listview所在的scrollview添加了一个监听。

    _scrollController.addListener(_listViewOffsetPosition); // 监听所在listView的当前位置
      // Todo 监听listView滚动的当前位置
      void _listViewOffsetPosition() {
        _currentPosition = _scrollController.offset ~/ (MediaQuery.of(context).size.height ) ; 
      }
    

    今天暂时就更这五条了。以后碰到了新问题再加上来。如果本文对你有所帮助,记得点个赞咧。

    相关文章

      网友评论

          本文标题:Flutter 爬坑杂记

          本文链接:https://www.haomeiwen.com/subject/kvatbktx.html