Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
363 of 1024 menu
◀ ▶

Виджет OrientationBuilder

Виджет OrientationBuilder вызывает функцию builder при каждой перестройке. Второй аргумент функции - значение Orientation из ближайшего MediaQuery. По нему удобно выбирать ряд или колонку.

Синтаксис

OrientationBuilder( builder: (context, orientation) { return child; }, )

Параметры

Параметр Описание
builder Функция, которая получает context и Orientation и возвращает дочерний виджет.

Пример

Давайте поставим два текста в ряд в альбоме и в колонку в портрете:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: OrientationBuilder( builder: (context, orientation) { if (orientation == Orientation.landscape) { return Row( mainAxisAlignment: MainAxisAlignment.center, children: const [ Text('abcde'), Text('12345'), ], ); } return Column( mainAxisAlignment: MainAxisAlignment.center, children: const [ Text('abcde'), Text('12345'), ], ); }, ), ), ), ); }

На экране в портрете тексты встанут друг под другом, в альбоме - в одну строку.

Пример

Давайте покажем текущую ориентацию текстом:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: OrientationBuilder( builder: (context, orientation) { return Center( child: Text('$orientation'), ); }, ), ), ), ); }

На экране по центру появится строка с именем ориентации.

Смотрите также

  • перечисление Orientation,
    которое различает портрет и альбом
  • метод orientationOf,
    который читает ориентацию без OrientationBuilder
  • виджет MediaQuery,
    который хранит данные экрана для builder
  • виджет SafeArea,
    который учитывает вырез при любой ориентации
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить