Метод copyWith
Метод copyWith класса EdgeInsets создаёт копию
с новыми значениями только у переданных сторон.
Остальные стороны остаются как в исходнике.
Синтаксис
insets.copyWith(left: 24, bottom: 16)
Параметры
| Параметр | Описание |
|---|---|
left |
Новый отступ слева, если передан. |
top |
Новый отступ сверху, если передан. |
right |
Новый отступ справа, если передан. |
bottom |
Новый отступ снизу, если передан. |
Пример
Давайте увеличим только левый отступ:
import 'package:flutter/material.dart';
void main()
{
const base = EdgeInsets.all(12);
final wider = base.copyWith(left: 48);
runApp(
MaterialApp(
home: Scaffold(
body: Padding(
padding: wider,
child: Text('abcde'),
),
),
),
);
}
На экране текст сильнее сдвинется от левого края, остальные поля останутся 12 px.
Пример
Давайте обнулим верхний отступ у симметричного padding:
import 'package:flutter/material.dart';
void main()
{
const base = EdgeInsets.symmetric(vertical: 20, horizontal: 16);
final tuned = base.copyWith(top: 0);
runApp(
MaterialApp(
home: Scaffold(
body: Padding(
padding: tuned,
child: Align(
alignment: Alignment.topCenter,
child: Text('12345'),
),
),
),
),
);
}
На экране подпись прижмётся к верху, снизу останется поле 20 px.
Смотрите также
-
метод
add,
который складывает два inset -
метод
copyWithуBoxDecoration,
который меняет поля оформления -
метод
only,
который задаёт стороны с нуля -
класс
EdgeInsets,
который копируют черезcopyWith