问题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()
}
}
第三步:重新编译