Виджет CustomScrollView
Виджет CustomScrollView принимает slivers - список слайверов вроде SliverList, SliverGrid и SliverAppBar.
Синтаксис
CustomScrollView(
slivers: [SliverToBoxAdapter(child: Text('abcde'))],
)
Параметры
| Параметр | Описание |
|---|---|
slivers |
Список слайверов, которые скроллятся вместе. Обязательный параметр. |
controller |
ScrollController.
|
physics |
ScrollPhysics.
|
Пример
Давайте совместим шапку и список:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: CustomScrollView(
slivers: [
SliverAppBar(title: Text('12345')),
SliverList.list(
children: List.generate(
12,
(i) => ListTile(title: Text('abcde')),
),
),
],
),
),
);
}
На экране шапка и список прокручиваются одним жестом.
Пример
Давайте добавим сетку после списка:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: CustomScrollView(
slivers: [
SliverToBoxAdapter(child: Text('abcde')),
SliverGrid.count(
crossAxisCount: 2,
children: List.generate(
4,
(i) => Center(child: Text('12345')),
),
),
],
),
),
);
}
На экране сверху строка, ниже сетка из четырёх ячеек.
Смотрите также
-
виджет
SingleChildScrollView,
который часто ставят рядом в прокручиваемых экранах -
виджет
NestedScrollView,
который дополняет работу с прокруткой -
класс
SliverGridDelegateWithMaxCrossAxisExtent,
который помогает собрать сложный список -
виджет
PageView,
который задаёт поведение или данные прокрутки