1 | #https://github.com/flutterchina/dio/blob/master/README-ZH.md |
1 | #https://github.com/flutterchina/dio/blob/master/README-ZH.md |
1 | static Widget text(String data, { |
1 | static bool isDark(BuildContext context){ |
1 | //是否是深色模式 true dark主题模式 false light主题模式 |
1 | static noScaleWidget(Widget widget){ |
import 'dart:math';
)1 | static Color getRandomColor() { |
flutter 升级到 1.12.x android 启动时会黑屏解决办法
直接用flutter 1.12.x SDK创建的项目
需要修改AndroidManifest.xml
文件,修改如下:
1 | <application |
如果存在meta-data
的 android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
,删除此meta-data
,添加如下代码:
1 | <meta-data |
修改launch_background.xml,这个要根据需求添加开屏视图
1 |
|
在<application>
标签下添加新的 <meta-data>
,一旦您在AndroidManifest中进行了声明并使用了插件,能够使用使用了新的Android的插件(将插件注册为,FlutterEngine
而不是PluginRegistry.Registrar
1 | < meta-data |
如果是低版本创建的项目升级,除了以上修改外还需要修改以下内容:
1 | //FlutterActivity包路径修改 |
以前
1 | import io.flutter.app.FlutterActivity; |
现在
1 | import androidx.annotation.NonNull; |
AutomaticKeepAliveClientMixin
警告⚠️ This method overrides a method annotated as @mustCallSuper in 'AutomaticKeepAliveClientMixin', but doesn't invoke the overridden method.
该方法将覆盖在’AutomaticKeepAliveClientMixin’中标注为@mustCallSuper的方法,但不会调用覆盖的方法。
解决方案:
检查 添加AutomaticKeepAliveClientMixin
添加
1 | <br> |
build方法中记得调用父类方法super.build(context);
1 | Widget build(BuildContext context) { |
1 | /// This flag is deprecated, please use [resizeToAvoidBottomInset] |
进入到要创建项目的位置,在当前目录下创建项目名称为mydemo的项目
基本默认创建 flutter create mydemo
创建一个 iOS 基于 Swift ,Android基于Java的flutter项目
1 | flutter create --ios-language swift --android-language kotlin mydemo |
创建一个 iOS 基于 Swift ,Android基于kotlin的flutter项目
1 | flutter create --ios-language swift --android-language kotlin mydemo |
创建一个 iOS 基于 OC ,Android基于kotlin的flutter项目
1 | flutter create --ios-language objc --android-language kotlin mydemo |
创建一个 iOS 基于 OC ,Android基于java的flutter项目
1 | flutter create --ios-language objc --android-language java mydemo |
配置路径 code>preferences>Settings — User > Extensions > Dart & Flutter
1 | TextPainter fetchTextPainter(String text, TextStyle style, int maxLine, |
1 | bool isExpansion(String text, TextStyle style, int maxLine, double minWidth, |
1 | String expansionString(String text, TextStyle style, int maxLine, |
shared_preferences库同时支持Android和ios平台,存键值对信息,进行数据本地持久化存储。
在pubspec.yaml文件中添加依赖
shared_preferences: ^0.5.3+4
->查看最新版本
执行$ flutter packages get命令 下载插件
在使用的文件中导入:
import 'package:shared_preferences/shared_preferences.dart';
1 | SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); |
1 |
|
PathProvider 访问设备文件系统上的常用位置。
在pubspec.yaml文件中添加 PathProvider 插件
path_provider: ^*.*.*
查看最新版本
在文件中导入:
import 'package:path_provider/path_provider.dart';
DocumentsDirectory
文档目录,用于存储只有自己可以访问的文件。只有当应用程序被卸载时,系统才会清除该目录。在
iOS
上,这对应于NSDocumentDirectory
。在Android
上,这是AppData
目录。
String docDir = (await getApplicationDocumentsDirectory()).path;
TemporaryDirectory
系统可随时清除的临时目录(缓存)。在
iOS
上,这对应于NSTemporaryDirectory()
返回的值。在Android
上,这是getCacheDir()
返回的目录。
String tempDir = (await getTemporaryDirectory()).path;
SupportDirectory
在iOS上,它使用
NSApplicationSupportDirectory
来获取目录。在Android上,这是getFilesDir
返回的目录。
String supportDir = (await getApplicationSupportDirectory()).path;
ExternalStorageDirectory
获取存储卡路径,仅在
Android
上中有效,iOS
系统无此方法,可以通过Platform.isIOS
来判断当前系统是否是iOS
系统
String extStorageDir = (await getExternalStorageDirectory()).path;
1 / 3