MaterialApp и Scaffold

Последнее обновление: 03.02.2021

Виджет MaterialApp предназначен для создания графического интерфейса в стиле material design. Кроме собственно интерфейса в стиле material design это виджет предоставляет много другой функциональности, например, позволяет определить навигацию, различные части приложения и т.д. Поэтому вначале рассмотрим некоторые базовые моменты использования MaterialApp.

Конструктор MaterialApp имеет приличное количество параметров, среди которых следует выделить параметр home. Этот параметр задает базовый виджет, который будет отображаться в MaterialApp при загрузке. Например:

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    home:  Container(
      color: Colors.white,
      padding: EdgeInsets.only(top:25),
      child: Text("Flutter на  METANIT.COM",
          style: TextStyle(fontSize: 22, color: Colors.black87),
          textAlign: TextAlign.center,
          textDirection: TextDirection.ltr),
      ),
  ));
}
MaterialApp в Flutter и Dart

Scaffold

Несмотря на то, что для параметра home можно использовать любой виджет, в реальности, как правило, в данном качестве используется виджет Scaffold. Это еще один виджет, который применяется для создания интерфейса в стиле Material Design.

Конструктор класса Scaffold также имеет довольно много параметров, из которых прежде всего следует выделить параметр body - он задает основное содержимое Scaffold в виде другого виджета. Например:

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(

    home: Scaffold(
      body: Container(
        color: Colors.white,
        padding: EdgeInsets.only(top:25),
        child: Text("Flutter на METANIT.COM",
            style: TextStyle(fontSize: 22, color: Colors.black87),
            textDirection: TextDirection.ltr),
      ),
    ),
  ));
}
MaterialApp и Scaffold в Flutter и Dart

AppBar

Из других параметров конструктора Scaffold следует отметить параметр appBar, который задает верхнюю панель с заголовком и возможными иконками. В качестве значения этот параметр принимает объект AppBar.

AppBar представляет еще один класс, который применяется для придания приложению стиля Material Design.

Виджет AppBar также предоставляет богатую функциональность. И пока остановимся только на заголовке, который устанавливается с помощью параметра title конструктора AppBar. Этот параметр в качестве значения принимает виджет Text:

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    home: Scaffold(
      body: Text("MaterialApp in Flutter",
            style: TextStyle(fontSize: 22, color: Colors.black87),
            textDirection: TextDirection.ltr),
      appBar: AppBar(
        title: const Text("METANIT.COM"),
      ),
    ),
  ));
}
MaterialApp и Scaffold и AppBar в Flutter и Dart

Как видно со скриншота, в данном случае нам не надо устанавливать сверху никаких отступов, Scaffold автоматически позиционирует основной контент ниже панели AppBar. Кроме того, виджеты предоставляют некоторые цвета по умолчанию.

При этом поскольку заголовок в AppBar представляет не просто строку, а виджет Text, то соответственно мы можем применить некоторую стилизацию, например, цвет текста и т.д.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850