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

Размер экрана MediaQuery в Flutter

Разметка часто зависит от размера экрана: узкий телефон против широкого планшета. Данные о дисплее хранит MediaQuery. Метод MediaQuery.sizeOf(context) возвращает Size с полями width и height в логических пикселях - удобно вызывать внутри build:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: HomePage())); } class HomePage extends StatelessWidget { const HomePage({super.key}); @override Widget build(BuildContext context) { final size = MediaQuery.sizeOf(context); return Scaffold( body: Center( child: Text( '${size.width.toStringAsFixed(0)} × ' '${size.height.toStringAsFixed(0)}', ), ), ); } }

Полученные числа описывают область, которую видит MaterialApp с учётом ориентации. При повороте устройства build вызовется снова, и ширина с высотой поменяются местами. Не путайте размер экрана с размером одного виджета - для локальных границ есть LayoutBuilder в более поздних темах:

Widget build(BuildContext context) { final width = MediaQuery.sizeOf(context).width; final isWide = width >= 600; // simple tablet cutoff return Scaffold( body: Center( child: Text(isWide ? 'Wide screen' : 'Narrow screen'), ), ); }

Выведите по центру две строки: 'Width:' и число ширины, затем 'Height:' и число высоты из MediaQuery.sizeOf(context) (целые значения). Поверните эмулятор и убедитесь, что цифры обновились.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить