Flutter学习入门

一、AndroidStudio环境安装
    1.两种下载flutter sdk的方式
        如果有电脑有git,git下载: git clone -b beta https://github.com/flutter/flutter.git
        如果电脑没有git,网址下载:https://flutter.io/docs/development/tools/sdk/archive#windows

    2.配置flutter环境变量:Path = E:\flutter_windows_v1.0.0-stable\flutter\bin

    3.配置AndroidStudio的Dart和Flutter
        dart:E:\flutter_windows_v1.0.0-stable\flutter\bin\cache\dart-sdk
        flutter:E:\flutter_windows_v1.0.0-stable\flutter
    
    4.重启设备
    
二、常用Widget
    1.StatelessWidget:类似于Activity
    2.MaterialApp:填充StatelessWidget
    3.Scanffold:填充MaterialApp的home,提供默认的导航栏、标题
    4.MaterialButton:填充Scanffold的body
    5.StatelessWidget中必须初始一个MaterialApp,其余可以用home填充
    
三、如何类比Android学习flutter
    1.Android中的View
        在flutter里面对应Widget;
    2.Android中View的更新是invalidate
        在flutter中,只有有状态的Widget才可以更新用户界面,那就是StatefulWidget,可以通过setState更新界面
    3.Android中的xml布局
        在flutter中,布局也是通过widget来呈现,你可以new一个MaterialButton,通过child来实现你想要的内容;
    4.Android中添加或者删除组件通过addChild和removeChild
        在flutter中,只能通过替换widget来更新界面
    5.Android中View可以通过animate实现动画
        在flutter中可以通过AnimationController和Interpolator实现动画
    6.Android中的Canvas和Paint
        在flutter中通过CustomPaint和CustomPainter来实现绘制画布
    7.Android中通过继承View或者View子类来实现自定义控件
        在flutter中通过widget和widget的相互组合实现自定义
    8.Android中通过Intent实现页面的跳转和组件之间消息的传递
        在flutter中也可以通过Native的整合来触发Intent;
        不过如果只是实现页面之间的切换,flutter提供的是路由的概念,类似Android的Activity;
        管理多个屏幕的两个核心类是Route和Navigator;
        Route就是页面;Navigator就是管理Route的wedgit;
        Navigator可以通过push和pop Route来实现页面的切换;
        flutter也可以通过MethodChannel.invokeMethod来处理Android中传来的intent
    9.Android中通过runOnUiThread来异步更新UI
        flutter所使用的Dart是单线程执行模型,支持solates,就是可以在其它线程上运行Dart代码的方式;
        如果没有启动新的Isolate,所有的Dart代码搜是在UI线程中运行的;
        您可以在当前的线程中去写网络请求的代码,也可以在获取到网络数据后使用setState直接更新;
        如果你想做UI中做一些耗时操作,只需要在方法名后声明async即可;
    10.Android中Activity中的生命周期
        flutter中的widget也有自己的生命周期:resumed、inactive、paused、suspending;
        其中inactive只在ios上使用;suspending只在android上使用;
    11.Android中的LinearLayout和RelativeLayout
        在flutter中可以通过Row和Column以及Stack的组合来实现
    12.Android中的监听事件
        在flutter中对于widget的监听分为两种:
        如果当前的Widget支持监听事件,只需在onPressed中设置即可;
        如果当前的Widget不支持监听事件,就需要把当前Widget包装到GestureDetector中通过onTap来处理了;
        另外GesruewDetector中还有很多其它手势的监听;
    13.Andorid中的ListView和adapter
        在flutter中同样也有ListView,不过它并没有adapter的概念,它是通过children的标签获取一个List<Widget>来展示内容的;
        同时可以在List<Widget>获取数据时通过GestureDetector添加监听事件;
        ListView的更新需要更新数据源的List,然后再调用setState方可生效;
    14.Android中的SharedPreference和SQLite
        在flutter中同样也可以使用
    15.Android中的Notification
        在flutter可以使用Firebase_Messaging插件来访问通知(国内禁用)

注:
Flutter官网地址:https://flutterchina.club/

    原文作者:Herbert布衣
    原文地址: https://blog.csdn.net/baidu_17619859/article/details/85261966
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞