Метод extent
Метод extent виджета GridView конструктор GridView.extent использует maxCrossAxisExtent, чтобы ячейки не становились шире заданного предела.
Синтаксис
GridView.extent(
maxCrossAxisExtent: 120,
children: [Text('abcde')],
)
Параметры
| Параметр | Описание |
|---|---|
maxCrossAxisExtent |
Максимальная ширина одной ячейки. Обязательный параметр. |
children |
Дочерние виджеты, строки секции. |
childAspectRatio |
Соотношение ширины и высоты ячейки. |
Пример
Давайте вызовем его в простом экране:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: GridView.extent(
maxCrossAxisExtent: 100,
children: List.generate(
8,
(i) => Card(child: Center(child: Text('12345'))),
),
),
),
),
);
}
На экране колонок столько, сколько влезает по ширине экрана.
Пример
Давайте повторим вызов с другими числами:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: GridView.extent(
maxCrossAxisExtent: 80,
childAspectRatio: 2,
children: List.generate(
4,
(i) => Center(child: Text('abcde')),
),
),
),
),
);
}
На экране ячейки станут ниже из-за соотношения сторон.