Flutter-常见问题收集分享

1 篇文章 0 订阅
1 篇文章 0 订阅

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对应值与项目对应即可
在这里插入图片描述

持续收集 持续更新…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值