Flutter 开发问题汇集

问题1:Flutter-解决键盘弹起导致页面布局异常,报错:RangeError (index): Invalid value: Valid value range is empty: -1

解决办法:设置Scaffold的属性resizeToAvoidBottomPadding为false,


问题2:调用showCupertinoDialog 报错NoSuchMethodError: The getter 'modalBarrierDismissLabel' was called on null

解决方法:添加GlobalCupertinoLocalizations.delegate,如下代码所示

MaterialApp(
  localizationsDelegates: [
    GlobalCupertinoLocalizations.delegate, //添加这行即可解决问题
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],
)

注意:需要在pubspec.yaml添加localizations依赖,如下:

dependencies:
  flutter_localizations:
    sdk: flutter

问题3:Scrollview嵌套 listview gridview问题

解决办法:
1、显示不了
listview 、gridview里面添加属性

shrinkWrap: true

2、滑动冲突
listview 、gridview里面添加属性

physics: NeverScrollableScrollPhysics() 

问题4:ROW左右布局高度不一致时导致显示不全

解决办法:使用 IntrinsicHeight 包裹下

child: IntrinsicHeight(
     child: Row()
)

问题5:GridView和ListView使用的时候出现上面或者下面出现空白条,Android正常,iOS底部显示有一个高度的空白条

解决办法:ListView或者GridView外层包上MediaQuery.removePadding,设置 removeTop: true, removeBottom: true即可。

 MediaQuery.removePadding(
    context: viewService.context,
    removeTop: true,  //移除上面空白条
    removeBottom: true,//移除下面空白条
    child: ListView.builder(
     
    ),
  );
问题6:Flutter incorrect use of parentDataWidget 异常,现象debug显示没有问题,release包不显示界面。

问题原因:Expanded Flexible等组件只能放在Row,Column,Flex的子级控件中可用空间的小部件,不能再其他组件中使用。
解决办法:查看布局是否有Expanded Flexible布局不在Row,Column,Flex的子级控件中的情况。
官网说明:https://api.flutter.dev/flutter/widgets/Expanded-class.html

问题7:Text 底部默认双黄线

解决: Text 设置style中加上:decoration: TextDecoration.none,

问题8:Android导入Flutter Module报错Failed to apply plugin class ‘FlutterPlugin‘

解决:
第一步:打开Android project的settings.gradle修改repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)为
repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
第二步:打开Android project的build.gradle增加如下设置
allprojects {
repositories {
google()
jcenter()
}
}
第三步:重新编译

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容