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,

你可能感兴趣的:(Flutter 开发问题汇集)