![](https://img-blog.csdnimg.cn/869bfbf374474ac2836e50df30a88d69.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Flutter
文章平均质量分 66
Flutter入门
HelloSim
这个作者很懒,什么都没留下…
展开
-
Flutter Android混合开发-与原生通信
MethodChannel MethodChannel是最常用的Native和Flutter的通信方式,主要用于Flutter调用Native端方法。如调用Native相机功能。用于传递方法调用,一次性通信。 Android端: 创建MethodChannel,通过setMethodCallHandler接收Flutter端的方法调用 //1.创建android端的MethodChannel MethodChannel channel = new MethodChannel(flutterEngine.ge原创 2021-04-12 15:08:37 · 279 阅读 · 0 评论 -
Flutter Android混合开发-添加Flutter Fragment
使用新引擎创建 FlutterFragment 使用新引擎指定路由创建 FlutterFragment 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_pare原创 2021-04-08 17:06:40 · 853 阅读 · 0 评论 -
Flutter Android混合开发-页面跳转
Android跳转到Flutter页面 AndroidManifest.xml 注册 FlutterActivity: <activity android:name="io.flutter.embedding.android.FlutterActivity" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|densi原创 2021-04-08 15:22:27 · 2053 阅读 · 2 评论 -
Flutter Android混合开发-项目关联
1.在你的Android项目中引入或新建Flutter模块 这里注意:Flutter模块和你的Android项目应该是在同一层级下。 但是这样貌似也没问题 2.在project下的settings.gradle文件添加: setBinding(new Binding([gradle: this])) evaluate(new File(settingsDir, 'text_flutter/.android/include_flutter.groovy')) include ':text_flutt原创 2021-04-07 18:26:52 · 121 阅读 · 0 评论 -
flutter打Android apk包
1. 在android下创建key.properties配置文件 storePassword=xxx keyPassword=xxx keyAlias=xxx storeFile=E:\\self\\travel_tool\\HelloSim.jks 2.编辑 android/app/build.gradle文件 配置签名 在android{}前面添加 def keystorePropertiesFile = rootProject.file("key.properties") def keysto原创 2021-03-31 16:05:34 · 280 阅读 · 0 评论 -
十、手势相关Widget:GestureDetector和Dismissible
1.指针事件 指针表示用户与设备屏幕交互的原始数据。有四种类型的指针事件: PointerDownEvent:指针接触到屏幕的特定位置。 PointerMoveEvent: 指针已从屏幕上的一个位置移动到另一个位置。 PointerUpEvent: 指针已停止接触屏幕。 PointerCancelEvent:此指针的输入不再指向此应用,通俗来讲就是事件取消。 在指针按下时,Flutter框架会对当前应用程序执行命中测试,以确定指针与屏幕接触的位置存在哪个Widget上,然后将PointerDownEve原创 2021-03-29 15:53:08 · 94 阅读 · 0 评论 -
九、Dio网络请求 与 JSON数据解析
一、Dio的使用入门 Dio是一个强大的Dart Http请求库,支持拦截器,全局配置,FormData,请求取消,文件下载,超时等。 添加依赖 在pubspec.yaml中添加依赖。 dependencies: dio: 2.1.7 import 'package:dio/dio.dart'; class DioUtil { Dio _dio; static final DioUtil _instance = DioUtil._internal(); factory DioUt原创 2021-03-29 15:46:37 · 929 阅读 · 0 评论 -
八、路由(页面跳转)和数据传递
Flutter中进行界面跳转的就是路由,路由用Route类来进行表示,Navigator是对Route进行管理的Widget。 flutter路由的使用方式主要有两种,一种是新建路由,一种是注册路由。 一、新建路由 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(Build原创 2021-03-29 15:17:23 · 328 阅读 · 0 评论 -
七、assets资源图片
一、指定assets Flutter也有asset这一概念,asset是打包到程序安装包中的,可在运行时访问。常见的asset类型包括静态数据(例如JSON文件)、配置文件、图标和图片(JPEG,WebP,GIF,动画WebP / GIF,PNG,BMP和WBMP)。 使用asset,需要先让asset被识别,在项目根目录中的pubspec.yaml中定义 flutter: assets: - images/user/login.png - images/user/no_login.pn原创 2021-03-29 15:02:14 · 618 阅读 · 0 评论 -
六、布局Widget
线性布局Widget 流式布局Widget 层式布局Widget 弹性布局Widget 一、线性布局Widget Flutter的线性布局有两个: Row:水平方向的线性布局。 Column:垂直方向的线性布局。 Row和Column的用法类似 class _TestPageState extends State<TestPage> { @override Widget build(BuildContext context) { return Container( .原创 2021-03-29 14:47:11 · 181 阅读 · 0 评论 -
五、Scrolling Widget之ListView、GridView、PageView
一、ListView 四种构造函数: ListView,默认构造函数 ListView.builder,适用大量列表项(使用最多) ListView.separated,适用于固定数量列表项 ListView.custom,自定义 子Widget ListView( padding: EdgeInsets.zero, children: <Widget>[ ListTile( leading: Icon(Icons.local_offer), titl原创 2021-03-29 14:25:28 · 122 阅读 · 0 评论 -
四、Material组件之MaterialApp、Scaffold、BottomNavigationBar、Drawer、AppBar、TabBar
一、MaterialApp class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), //注册路由 routes: <原创 2021-03-26 17:23:44 · 321 阅读 · 0 评论 -
三、Widget
一、Widget 在Flutter中,除了Basics 的文本、图片、卡片、输入框这些基础控件,布局方式和动画等也都是由Widget组成的。通过使用不同类型的Widget,就可以实现复杂的界面。 Widget可以翻译为部件,粗略的相当于Android中的View。Widget和View不同的是:Widget具有不同的生命周期:它是不可变的,每当Widget或者其状态发生变化时,Flutter的框架都会创建一个新的Widget实例树。相比之下,Android中的View会被绘制一次,并且在invalidate原创 2021-03-26 15:01:13 · 291 阅读 · 0 评论 -
二、Dart
一、dart SDK: https://dart.dev/get-dart 二、Dart关键字 关键字 abstract dynamic implements show as else import static assert enum in super async export interface switch await extends is sync break external library this case factory factory fac原创 2021-03-26 14:12:36 · 120 阅读 · 0 评论 -
一、Flutter开发环境搭建
一、下载Flutter SDK flutter官网下载:https://flutter.dev/docs/development/tools/sdk/releases github下载:https://github.com/flutter/flutter/releases git 命令下载Flutter beta版:git clone -b beta https://github.com/flutter/flutter.git 二、环境变量 flutter --version 验证是否配置成功原创 2021-03-26 11:03:13 · 103 阅读 · 0 评论