需要在grid下方跟随一个按钮,随grid滚动,在grid占不满全屏的时候按钮依然在屏幕下方,这时候就需要用到SliverFillRemaining
SliverFillRemaining是一个占满屏幕剩余空间的Sliver
- CustomScrollView的slivers参数只能传sliver,所有Grid也需要使用 SliverGrid
- SliverFillRemaining可以自己滚动,为了和CustomScrollView的滑动一致,需要禁止,设置hasScrollBody为false
CustomScrollView(
slivers: [
SliverGrid(
delegate: SliverChildBuilderDelegate((context, index) {
if (index < xx) {
return AAAWidet();
} else {
return BBBWidget();
}, childCount:list.length ),
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3, crossAxisSpacing: 8, mainAxisSpacing: 7, mainAxisExtent: 132)),
SliverFillRemaining(
hasScrollBody: false,//SliverFillRemaining自己可以滚动,需要禁止
child: Align(
alignment: Alignment.bottomCenter,
child: Padding(
padding: EdgeInsets.only(top: 16, bottom: bottom),
child: CupertinoButton(onPressed: () { },
child:Text('按钮'),),
)),
)
],
);