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

Виджет SafeArea в Flutter

На телефонах с «чёлкой», скруглёнными углами и жестовой полосой часть экрана занимают системные элементы. Виджет SafeArea добавляет отступы, чтобы текст и кнопки не оказались под статус-баром или в зоне выреза. Оборачивают им содержимое body или отдельный блок интерфейса:

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) { return Scaffold( body: SafeArea( child: Padding( padding: const EdgeInsets.all(16), child: Text('Text in the safe area'), ), ), ); } }

Виджет Scaffold сам учитывает часть системных отступов для body, но полноэкранные макеты, цветной фон до края и кастомные шапки без AppBar часто требуют явного SafeArea. Параметры top, bottom, left, right можно отключить выборочно, если, например, нижнюю зону намеренно заполняет NavigationBar:

Scaffold( body: Column( children: [ SafeArea( bottom: false, child: Container( width: double.infinity, padding: const EdgeInsets.all(16), color: Colors.teal, child: const Text( 'Header', style: TextStyle(color: Colors.white), ), ), ), const Expanded( child: Center(child: Text('Content')), ), ], ), )

Выведите в body один Text 'Top edge' внутри SafeArea с Padding 16. Текст не должен заходить под строку состояния.

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