Класс SliverGridDelegateWithMaxCrossAxisExtent
Класс SliverGridDelegateWithMaxCrossAxisExtent задаёт maxCrossAxisExtent. Flutter сам считает, сколько колонок влезет. Остальные поля похожи на SliverGridDelegateWithFixedCrossAxisCount.
Синтаксис
SliverGridDelegateWithMaxCrossAxisExtent(maxCrossAxisExtent: 120)
Параметры
| Параметр | Описание |
|---|---|
maxCrossAxisExtent |
Предельная ширина ячейки. По ней считают число колонок. |
mainAxisSpacing |
Промежуток между ячейками вдоль прокрутки. |
crossAxisSpacing |
Промежуток между ячейками поперёк прокрутки. |
childAspectRatio |
Отношение ширины ячейки к её высоте. |
Пример
Давайте выведем сетку с узкими ячейками:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: GridView(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: 90,
),
children: List.generate(
6,
(i) => Center(child: Text('12345')),
),
),
),
),
);
}
На экране колонок будет больше, чем при фиксированном crossAxisCount.
Пример
Давайте сделаем ячейки шире:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: GridView(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: 200,
),
children: List.generate(
4,
(i) => Center(child: Text('abcde')),
),
),
),
),
);
}
На экране колонок станет меньше, каждая ячейка займёт больше места.
Смотрите также
-
класс
SliverGridDelegateWithFixedCrossAxisCount,
который часто ставят рядом в прокручиваемых экранах -
виджет
SingleChildScrollView,
который дополняет работу с прокруткой -
метод
custom,
который помогает собрать сложный список -
виджет
CustomScrollView,
который задаёт поведение или данные прокрутки