Метод custom
Метод custom виджета ListView конструктор ListView.custom принимает список children из слайверов и ведёт себя как облегчённый CustomScrollView. Удобно смешивать SliverList.list и SliverToBoxAdapter.
Синтаксис
ListView.custom(
children: [
SliverList.list(
children: [Text('abcde')],
),
],
)
Параметры
| Параметр | Описание |
|---|---|
children |
Список слайверов, которые участвуют в прокрутке. Обязательный параметр. |
controller |
ScrollController для смещения прокрутки.
|
physics |
Физика жеста. Принимает ScrollPhysics.
|
Пример
Давайте добавим шапку и список в одной прокрутке:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: ListView.custom(
children: [
SliverToBoxAdapter(
child: Padding(
padding: EdgeInsets.all(16),
child: Text('abcde'),
),
),
SliverList.list(
children: List.generate(
5,
(i) => ListTile(title: Text('12345')),
),
),
],
),
),
),
);
}
На экране сверху заголовок, ниже пять одинаковых пунктов в одной прокрутке.
Пример
Давайте вставим отступ вокруг списка через SliverPadding:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: ListView.custom(
children: [
SliverPadding(
padding: EdgeInsets.all(8),
sliver: SliverList.list(
children: [
Text('abcde'),
Text('12345'),
],
),
),
],
),
),
),
);
}
На экране обе строки сдвинутся от краёв на одинаковый отступ.