Метод orientationOf
Метод orientationOf виджета
MediaQuery он равен
и возвращает
MediaQuery.of(context).orientationOrientation.
Удобная альтернатива - виджет
OrientationBuilder.
Синтаксис
MediaQuery.orientationOf(context)
Параметры
| Параметр | Описание |
|---|---|
context |
BuildContext виджета под MediaQuery.
|
Пример
Давайте покажем ориентацию текстом:
import 'package:flutter/material.dart';
class OrientationText extends StatelessWidget
{
const OrientationText({super.key});
@override
Widget build(BuildContext context)
{
var res = MediaQuery.orientationOf(context);
return Text('$res');
}
}
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: OrientationText(),
),
),
),
);
}
На экране по центру будет Orientation.portrait или Orientation.landscape.
Пример
Давайте выберем колонку только в портрете:
import 'package:flutter/material.dart';
class AdaptiveRow extends StatelessWidget
{
const AdaptiveRow({super.key});
@override
Widget build(BuildContext context)
{
var vertical =
MediaQuery.orientationOf(context) == Orientation.portrait;
if (vertical) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
Text('abcde'),
Text('12345'),
],
);
}
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
Text('abcde'),
Text('12345'),
],
);
}
}
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: AdaptiveRow(),
),
),
);
}
На экране тексты встанут в колонку или в ряд после поворота устройства.
Смотрите также
-
перечисление
Orientation,
которое описывает значения portrait и landscape -
виджет
OrientationBuilder,
который перестраивает UI при смене ориентации -
метод
sizeOf,
который меняется вместе с ориентацией -
метод
of,
который возвращает полныйMediaQueryData