CustomScrollView简介
使用场景:
属性 | 作用 |
---|
scrollDirection | 滑动方向 |
reverse | 数据列表反向显示 |
controller | 滑动列表参数配置 |
primary | 自行查看 |
physics | 滑动到底部之后的滑动动画 |
scrollBehavior | 自行查看 |
shrinkWrap | 确定滚动视图的高度 |
cacheExtent | 设置缓存范围 |
semanticChildCount | 设置子视图的个数 |
keyboardDismissBehavior | 键盘关闭模式 |
clipBehavior | 布局裁剪模式 |
slivers | 它是数组格式,填充Widget |
SliverPadding(
padding: EdgeInsets.all(20.w),
sliver: SliverToBoxAdapter(
child: Container(
color: Colors.black54,
child: Text("SliverToBoxAdapter"),
),
),
)

SliverToBoxAdapter(
child: Container(
color: Colors.black54,
child: Text("SliverToBoxAdapter"),
),
)
SliverGrid.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
childAspectRatio: 1,
),
itemCount: data.length,
itemBuilder: (BuildContext context, int index) {
var item = data[index];
return Card(
elevation: 1,
clipBehavior: Clip.hardEdge,
child: Text(
item.toString(),
style: TextStyle(
color: Colors.blueAccent,
fontSize: 26,
),
),
);
},
)

SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return ListTile(
title: Text('SliverList Item $index'),
);
},
childCount: 10,
),
),

SliverFixedExtentList(
itemExtent: 50,
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return ListTile(
title: Text('FixedExtent Item $index'),
);
},
childCount: 10,
),
),

- title:指定应用栏的标题部分。 floating:当向上滚动时,设置为true会将应用栏固定在屏幕顶部。默认值为false。
- pinned:设置为true时,应用栏始终可见,无论向上滚动多少。默认值为false。
- expandedHeight:设置应用栏展开的高度。
- flexibleSpace:可以将FlexibleSpaceBar作为应用栏的子项,以添加背景图像、渐变效果等。

SliverPersistentHeader(
delegate: MyPersistentHeaderDelegate(),
pinned: true,
),
SliverFixedExtentList(
itemExtent: 50,
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return ListTile(
title: Text('FixedExtent Item $index'),
);
},
childCount: 20,
),
),

SliverAppBar(
title: Text(
'My App',
style: TextStyle(color: Colors.red),
),
floating: true,
pinned: true,
expandedHeight: 100,
flexibleSpace: FlexibleSpaceBar(
background:
Image.asset('assets/googleplay.png', fit: BoxFit.cover),
),
),
SliverPersistentHeader(
delegate: MyPersistentHeaderDelegate(),
pinned: true,
),
SliverFixedExtentList(
itemExtent: 50,
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return ListTile(
title: Text('FixedExtent Item $index'),
);
},
childCount: 20,
),
),
