美文网首页
Flutter 学习记录

Flutter 学习记录

作者: 沬日十七 | 来源:发表于2020-05-08 14:01 被阅读0次

1.bloc使用记录

1)首先我们需要定义三个文件

2)xxx.bloc    发起网络请求获取数据的事件,把数据yield出去

3)xxx.state    根据状态处理UI变化 比如:网络请求success  failed  progress等 并且携带解析数据传回页面

4)xxx.event    触发事件,比如开始点击,选择菜单,确定取消等

5)初始化一个bloc

例:

import 'package:platform_sdk/platform_sdk.dart';

import 'bloc/bloc.dart';

import 'widget/my_joycoin_widget.dart';

class MyJoycoinPage extends StatelessWidget {

  const MyJoycoinPage({Key key}) : super(key: key);

  @override

  Widget build(BuildContext context) {

    return BlocProvider<MyJoycoinBloc>(

      create: (BuildContext context) => MyJoycoinBloc(

        membershipCenterRepository: PlatformSdk.membershipCnRepository,

      )..add(MyJoycoinStarted(pageNumber: 1)),

      child: MyJoycoinWidget(),

    );

  }

}

6)监听bloc接收数据

import '../bloc/bloc.dart';

import 'package:platform_sdk/platform_sdk.dart';

class MyJoycoinWidget extends StatelessWidget {

  MyJoycoinWidget({Key key});

  @override

  Widget build(BuildContext context) {

    return BlocListener<MyJoycoinBloc, MyJoycoinState>(

        listener: (context, state) {

          if (state is MyJoycoinLoadSuccess) {

            JoyToast(

              '请求成功!',

              context,

              key: Key('myJoycoinReceivePage_message_joyToast'),

            );

          }

        },

        child: BlocBuilder<MyJoycoinBloc, MyJoycoinState>(

            key: Key('myJoycoinReceivePage_title_blocBuilder'),

            builder: (context, state) {

              if (state is MyJoycoinLoadFailure) {

                return Scaffold(

                  body: JoyConnectivityIssue(

                    key: Key('myJoycoinWidget_failure_joyLoadingIndicator'),

                    title: "localization.error.connectivityIssueTitle",

                    description:

                        " localization.error.connectivityIssueDescription",

                    retryButtonTitle:

                        "localization.dealerAppointmentCnStrings.refreshButtonText",

                    onRetryButtonPressed: () {},

                  ),

                );

              }

              if (state is MyJoycoinLoadInProgress) {

                return Scaffold(

                  body: Center(

                    child: JoyLoadingIndicator(

                      key:

                          Key('myJoycoinWidget_inProgress_joyLoadingIndicator'),

                      size: 50,

                    ),

                  ),

                );

              }

              if (state is MyJoycoinLoadSuccess) {

                var dealerList = state.orderInfo;

                return Scaffold(

                  body: Center(

                      child: ListView.builder(

                    key: Key('myJoycoinReceivePage_content_listView'),

                    itemCount: dealerList.length,

                    itemBuilder: (context, index) {

                      var item = dealerList[index];

                      return JoyListItem(

                        key: Key('myJoycoinWidget_enabled'),

                        title: item,

                        trailingLabel: item,

                      );

                    },

                    physics: AlwaysScrollableScrollPhysics(),

                    shrinkWrap: true,

                  )),

                );

              }

              return Container();

            }));

  }

}

1.flutter插件

fish_redux: 闲鱼团队推出的

cached_network_image: 网络图片、缓存图片

flutter_html: 展示html

image_picker: 选择图片、上传图片(单图)

flutter_webview_plugin: web浏览器,目前在ios有个头部滑动bug

qr_flutter: 二维码生成、解码

photo_view: 图片放大等

dio: 网络数据请求等

fluwx: 微信登录、微信分享等

url_launcher: 打开第三方应用、URL链接

awesome_dialog: 提示框

shared_preferences: 本地信息存储

path_provider: 本地路径

crypto: 编码解码

share_extend: 调起系统分享

multi_image_picker: 选择多图

encrypt: 编码解码

fake_alipay: 支付宝SDK

carousel_slider: 图片滚动,上下左右

webview_flutter: 我个人比较倾向的web浏览器

uni_links: 设置applink、deeplink、scheme等

flui: 骨架屏、加载中等Flutter上使用的UI

fake_push: 腾讯信鸽推送

相关文章

  • Flutter学习记录-汇总

    Flutter学习记录-布局Flutter学习记录-页面跳转Flutter学习记录-交互Flutter学习记录-基...

  • Flutter入门

    学习Flutter的入门级小Demo,<>学习记录,如图:

  • Flutter 入门学习指北

    Flutter 入门学习指北 学习 Flutter 已有两个月了,记录一下自己的学习过程,flutter 的毫秒级...

  • Flutter面试题收集

    如下:(纯属个人学习记录,如有问题欢迎指正) .1。flutter是什么?概念? 2.为何学习flutter及特性...

  • flutter 之歌

    学习flutter之中看到这首flutter之歌 ,不有自主的想去记录下 大前端之路

  • 从零开始学习flutter-控件1

    说明 本文是记录自己学习flutter过程,帮助自己整理flutter相关知识 StatelessWidget和S...

  • Flutter 学习记录

    1.bloc使用记录 1)首先我们需要定义三个文件 2)xxx.bloc 发起网络请求获取数据的事件,把数据yi...

  • Flutter学习记录

    环境搭建:1.下载flutter SDK然后解压到自定义的一个文件夹;2.配置环境变量编辑 .bash_profi...

  • Flutter学习记录

    Flutter加载本地图片不显示问题,创建的图片文件夹和pubspec.yaml是同级就可以显示出来 listvi...

  • flutter 学习记录

    效果图 实现功能 年底业务不是那么繁忙,正好公司来年可能要有fluttet写新插件的需求,就花了一周的时间学习并写...

网友评论

      本文标题:Flutter 学习记录

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