Класс SingleChildLayoutDelegate
Класс SingleChildLayoutDelegate обслуживает CustomSingleChildLayout.
Один метод сообщает размер самого виджета, другой - ограничения дочернего, третий - его положение.
shouldRelayout сравнивает новый делегат со старым.
Синтаксис
SingleChildLayoutDelegate(...)
Методы
| Метод | Описание |
|---|---|
getConstraintsForChild |
Возвращает BoxConstraints для единственного дочернего виджета.
|
getPositionForChild |
Возвращает Offset, куда поставить child внутри size родителя.
|
shouldRelayout |
Решает, нужен ли новый layout при смене delegate. |
Пример
Давайте посмотрим SingleChildLayoutDelegate в рабочем примере:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Text('abcde'),
),
),
);
}
На экране строка 'abcde'. Размер и сдвиг считает делегат.
Пример
Давайте изменим второй пример с SingleChildLayoutDelegate:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Column(
children: [
Text('abcde'),
Text('12345'),
],
),
),
),
);
}
Второй пример снова оставляет размер делегату.
Смотрите также
-
перечисление
WrapAlignment,
которое выравнивает строки при переносеWrap -
перечисление
WrapCrossAlignment,
которое выравнивает дочерние виджеты поперёк строкWrap -
перечисление
StackFit,
которое задаёт, какStackделит ограничения размера -
перечисление
FlexFit,
которое задаётtightилиlooseдляFlexible