CustomScrollView是可以使用Sliver来自定义滚动模型(效果)的组件。
可滚动组件的Sliver版
在Flutter中,Sliver通常指可滚动组件子元素,但在CustomScrollView中,需要粘起来的可滚动组件就是CustomScrollView的Sliver了
为了让可滚动组件能和CustomScrollView配合使用,Flutter提供了一些可滚动组件的Sliver版,如SliverList、SliverGrid等。
实际上Sliver版的可滚动组件和非Sliver版的可滚动组件最大的区别就是前者不包含滚动模型,而后者包含滚动模型。
CustomScrollView才可以将多个Sliver"粘"在一起,这些Sliver共用CustomScrollView的Scrollable,所以最终才实现了统一的滑动效果。
例
import 'package:flutter/material.dart';
class StudyCustomScrollView extends StatelessWidget{
@override
Widget build(BuildContext context) {
//Material design风格
return Material(
child: CustomScrollView(
slivers: <Widget>[
//导航栏
SliverAppBar(
pinned: true,//是否固定导航栏
expandedHeight: 200, //默认高度是状态栏和导航栏的高度
flexibleSpace: FlexibleSpaceBar(
title: Text("CustomScrollView