betacode

Руководство Flutter Positioned

  1. Positioned
  2. Positioned.directional constructor
  3. Positioned.fill constructor
  4. Positioned.fromRect constructor
  5. Positioned.fromRelativeRect constructor

1. Positioned

Widget Positioned используется для позиционирования дочернего виджета Stack.
Positioned используется только как прямой (или дочерний) виджет Stack. На пути от Positioned к Stack он включает только виджеты StatelessWidget или StatefulWidget, другие виджеты не допускаются (например, RenderObjectWidget).
Positioned constructor
const Positioned(
    {Key key,
    double left,
    double top,
    double right,
    double bottom,
    double width,
    double height,
    @required Widget child}
)
Например:
(ex1)
SizedBox (
    width: double.infinity,
    height: double.infinity,
    child: Stack(
      alignment: Alignment.centerLeft,
      children: <Widget>[
        Positioned (
           left: 100,
          top: 70,
          child: Container(
            width: 200,
            height: 100,
            color: Colors.green,
          ),
        )
      ],
    )
)
Размеры Positioned и его дочернего элемента всегда одинаковы.
Давайте рассмотрим пример: Positioned с ненулевым top и bottom заставляет высоту дочернего виджета изменяться в соответствии с этим ограничением.
(ex2)
SizedBox (
    width: double.infinity,
    height: double.infinity,
    child: Stack(
      alignment: Alignment.centerLeft,
      children: <Widget>[
        Positioned (
          top: 100,
          bottom: 70,
          child: Container (
            width: 200,
            height: 30, // !!
            color: Colors.green,
          ),
        )
      ],
    )
)
Если все три параметра left, right, width равны null , то свойство Stack.alignment будет использоваться для позиционирования дочернего виджета по горизонтали. Аналогично, если все три параметра top, bottom, height равны null, то свойство Stack.alignment будет использоваться для позиционирования дочернего виджета по вертикальному направлению.

2. Positioned.directional constructor

Positioned.directional используется для создания Positioned на основе направления текста.
Positioned.directional constructor
Positioned.directional(
  {Key key,
  @required TextDirection textDirection,
  double start,
  double top,
  double end,
  double bottom,
  double width,
  double height,
  @required Widget child}
)
Параметр textDirection является обязательным, а не null. Он принимает значение TextDirection.ltr (Left to Right) или TextDirection.rtl (Right to Left).
Если textDirection является TextDirection.ltr, то параметры (start, end) будут соответствовать (left, right). В противном случае (start, end) будут соответствовать (right, left).

3. Positioned.fill constructor

Positioned.fill это конструктор с параметрами left, right, top и bottom, имеющими значения по умолчанию 0.
Positioned.fill constructor
const Positioned.fill(
  {Key key,
  double left: 0.0,
  double top: 0.0,
  double right: 0.0,
  double bottom: 0.0,
  @required Widget child}
)

4. Positioned.fromRect constructor

Positioned.fromRect создает объект Positioned со значениями, заданными объектом Rect.
Positioned.fromRect constructor
Positioned.fromRect(
  {Key key,
  Rect rect,
  @required Widget child}
)
  • Руководство Flutter Rect

5. Positioned.fromRelativeRect constructor

Positioned.fromRelativeRect создает объект Positioned со значениями, заданными объектом RelativeRect.
Positioned.fromRelativeRect constructor
Positioned.fromRelativeRect(
  {Key key,
  RelativeRect rect,
  @required Widget child}
)
  • Руководство Flutter RelativeRect

Pуководства Flutter

Show More