Метод subtract
Метод subtract класса EdgeInsets уменьшает каждую сторону
на значение из other.
Отрицательные результаты не допускаются:
сторона не опускается ниже нуля.
Синтаксис
large.subtract(small)
Параметры
| Параметр | Описание |
|---|---|
other |
Отступы, которые вычитают из текущего набора. |
Пример
Давайте уменьшим padding, убрав внутреннее поле:
import 'package:flutter/material.dart';
void main()
{
const outer = EdgeInsets.all(32);
const inner = EdgeInsets.all(12);
final net = outer.subtract(inner);
runApp(
MaterialApp(
home: Scaffold(
body: Padding(
padding: net,
child: Text('abcde'),
),
),
),
);
}
На экране останется эффект padding 20 px со всех сторон.
Пример
Давайте сравним исходный и уменьшенный inset:
import 'package:flutter/material.dart';
void main()
{
const full = EdgeInsets.fromLTRB(40, 16, 40, 16);
const cut = EdgeInsets.symmetric(horizontal: 24);
runApp(
MaterialApp(
home: Scaffold(
body: Row(
children: [
Expanded(
child: Padding(
padding: full,
child: Container(
color: Colors.grey.shade300,
child: Text('abcde'),
),
),
),
Expanded(
child: Padding(
padding: full.subtract(cut),
child: Container(
color: Colors.grey.shade500,
child: Text('12345'),
),
),
),
],
),
),
),
);
}
На экране правая колонка шире: горизонтальный padding стал 16 px вместо 40 px.
Смотрите также
-
метод
add,
который прибавляет второй inset -
метод
subtractуBorderRadius,
который уменьшает радиусы углов -
метод
lerp,
который плавно меняет отступы -
класс
EdgeInsets,
у которого вызываютsubtract