Padding

Последнее обновление: 21.06.2020

Виджет Padding позволяет задать отступы для вложенного элемента.

Он применяет следующий конструктор:

Padding({Key key, @required EdgeInsetsGeometry padding, Widget child})

Для установки отступов в конструкторе применяется параметр padding, который является обязательным параметром. Он представляет класс EdgeInsetsGeometry. Чтобы задать отступы, мы можем использовать один из конструкторов этого класса:

  • EdgeInsets.all(double value): устанавливает одно значение double для всех четырех отступов (слева, сверху, справа и снизу)

  • EdgeInsets.fromLTRB(double left, double top, double right, double bottom): устанавливает для каждой из четырех сторон свое значение отступ

  • EdgeInsets.fromWindowPadding(WindowPadding padding, double devicePixelRatio): определяет простанство, которое соответствует параметру padding

  • EdgeInsets.only({double left: 0.0, double top: 0.0, double right: 0.0, double bottom: 0.0}): устанавливает для каждой из четырех сторон ненулевые значения отступов

  • EdgeInsets.symmetric({double vertical: 0.0, double horizontal: 0.0}): vertical устанавливает верхний и нижний отступ, а horizontal - левый и правый.

Сначала рассмотрим пример, где не применяются отступы:

import 'package:flutter/material.dart';

void main() {
  runApp(Align(
      alignment: Alignment.topCenter,
      child: Text(
        'Hello Flutter from metanit.com',
          textDirection: TextDirection.ltr
      )
    )
  );
}
Отступы в Flutter

Как видно, приложение занимает весь экран, в том числе верхнюю панель смартфона, где расположены различые индикаторы и текущее время.

Применим отступы, чтобы убрать тест в приложении не налазил на верхнюю панель смартфона:

import 'package:flutter/material.dart';

void main() {
  runApp(Padding(
     padding: EdgeInsets.all(40),
      child: Align(
      alignment: Alignment.topCenter,
      child: Text(
        'Hello Flutter from metanit.com',
          textDirection: TextDirection.ltr
        )
      )
    )
  );
}

В данном случае контейнер Align с текстом помещен в другой контейнер - Padding. Padding устанавливает одно значение для всех четырех отступов - 40 единиц. В итоге текст в приложении будет смещен от верхней статусной панели на 40 единиц вниз:

Отступы и Padding и EdgeInsets в Flutter

С использованием других конструкторов EdgeInsets можно установить отступы для разных сторон. Например:

import 'package:flutter/material.dart';

void main() {
  runApp(Padding(
     padding: EdgeInsets.only(top: 40, bottom:10, left:10, right:10),
      child: Align(
      alignment: Alignment.topCenter,
      child: Text(
        'Hello Flutter from metanit.com',
          textDirection: TextDirection.ltr
        )
      )
    )
  );
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850