在发布模式下不会发现此错误,这是由Emulator自身造成的。你可以忽略掉,或者
Add this two lines shrinkWrap: true
and physics: ScrollPhysics(),
under GridView.builder
Scaffold( drawer: SideDrawer(), body: Container( padding: EdgeInsets.all(20), width: MediaQuery.of(context).size.width * 0.77, child: FutureBuilder<dynamic>( future: appList(), builder: (context, snapshot) { if (snapshot.data == null) { return Center( child: CircularProgressIndicator(), ); } else { return GridView.builder( shrinkWrap: true, physics: ScrollPhysics(), gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 5, childAspectRatio: 3 / 2, crossAxisSpacing: 10, mainAxisSpacing: 10), itemCount: snapshot.data.length - 1, itemBuilder: (context, index) { return Card( elevation: 2, child: ListTile( leading: Text(snapshot.data[index]["title"]), ), ); }, ); } }, ), ), );
Flutter 默认的可滑动 Widget
,在 Android 和 iOS 上具备不同的 滑动与边缘拖拽效果 ,这是因为在不同平台上,默认使用了不同的 ScrollPhysics 与 Simulation
ScrollPhysics
的作用是 确定可滚动控件的物理特性, 常见的有以下四大:
BouncingScrollPhysics
:允许滚动超出边界,但之后内容会反弹回来。ClampingScrollPhysics
: 防止滚动超出边界,夹住 。AlwaysScrollableScrollPhysics
:始终响应用户的滚动。NeverScrollableScrollPhysics
:不响应用户的滚动。