1.终端执行命令提示:
Waiting for another flutter command to release the startup lock...
解决:
方法一 杀死dart进程
flutter packages pub build_runner watch
方法二 终极方案或者手动找到对应目录下文件进行删除,删除flutter SDK文件夹目录下的bin/cache下边的lockfile文件
rm ./flutter/bin/cache/lockfile
2.点击空白处,收起软键盘
解决:
GestureDetector(
onTap: () {
/// 触摸收起键盘
FocusScope.of(context).requestFocus(FocusNode());
},
child: Container(),);
3.界面存在输入框的时候,点击后软键盘将页面顶起来导致页面重绘的问题(Android fitsystem),可以通过将Scaffold的resizeToAvoidBottomPadding属性设置为false来关闭重绘
解决:
return Scaffold(
resizeToAvoidBottomPadding: false,
);
4.解决Android手机布局浸入到状态栏的问题,用一个SafeArea进行包装即可
解决:
SafeArea(top: true,
child: MaterialApp(
home: ,
),);
5.报错问题:
flutter is a SingleTickerProviderStateMixin but multiple tickers were created.
解决:
原因是多个地方调用setState请求重绘,但是state使用的是SingleTickerProviderStateMixin ,将其改成TickerProviderStateMixin即可。
6.flutter页面左右跳转风格
解决:
Navigator.push(context, CupertinoPageRoute( builder: (context) => SetPasswordPage(), ),);
7.报错问题:
Flutter中Column嵌套Listview报overflowed错误.
解决:
使用Column+Expanded+Listview布局界面.
8.Dart中数组转换为字符串:
解决:join
List a=[1,2,3,4];
String str=a.join(',');
9.使用bottomNavigationBar切换page时重新调用initState
解决:
使用PageView包裹body,子page with AutomaticKeepAliveClientMixin,重写bool get wantKeepAlive => true
10.IDE中其实提供了添加父容器的快捷键(光标定位在Widget上,然后Alt + Enter,选择需要添加的父容器即可)
11.Flutter Incorrect use of ParentDataWidget
排查后发现是Expanded、Flexible等组件,在“Container、Padding、Stack”组件中导致。
解决:
保持Expanded、Flexible只在Row、Column等组件内,不在其他组件内使用。
12.Flutter Dart 报错 ‘_InternalLinkedHashMap<dynamic, dynamic>’ is not a subtype of type 'Map<String, …
解决:使用如下转换即可
new Map<String, dynamic>.from(params)
13.flutter打包报错:AndroidStudio Gradle版本不匹配
报错信息:
Error:(1, 1) A problem occurred evaluating project ':MemberSDK'.
> Failed to apply plugin [id 'com.android.library']
> Minimum supported Gradle version is XXX. Current version is XXX If using the gradle wrapper, try editing the distributionUrl in /Users/wanglianghe/whaley/heliosAndMoreTvCode/restructureProject/MemberSDKProject/gradle/wrapper/gradle-wrapper.properties to gradle-XXX-all.zip
解决:
每个项目都有关于gradle的配置项目录,目录结构:你的项目\gradle\wrapper\gradle-wrapper.properties,然后将gradle-wrapper.properties文件distributionUrl的值改成对应的gradle版本即可。
比如:
distributionUrl= https://services.gradle.org/distributions/gradle-5.4.6-all.zip
14.flutter项目在Android Studio中显示no devices,没法flutter run
解决:
Fill --> Other Settings --> Default Project Structure…找到Android SDK的路径
15.flutter build 报udid错误
解决:
找到uidi插件的udid-0.0.2/android/build.gradle更改compileSdkVersion,minSdkVersion对应值与项目对应即可