Виджет WidgetsApp
Виджет WidgetsApp ставят корнем, когда нужны Navigator и локализация,
но не нужен полный набор Material из
MaterialApp.
Корневой экран задают через builder или home,
таблицу путей - в routes,
функцию построения маршрута - в onGenerateRoute.
Цвет сплэша и фона задают в color.
Синтаксис
WidgetsApp(
color: Colors.white,
builder: (BuildContext context, Widget? child) {
return child ?? SizedBox.shrink();
},
home: Text('abcde'),
)
Параметры
| Параметр | Описание |
|---|---|
builder |
Оборачивает Navigator и дочерний маршрут.
|
home |
Стартовый виджет, если routes не заданы. |
routes |
Словарь строкового пути и построителя экрана. |
color |
Цвет фона до отрисовки первого кадра. |
Пример
Давайте запустим простой экран через WidgetsApp:
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
void main()
{
runApp(
WidgetsApp(
color: Colors.white,
builder: (context, child) => child!,
home: Center(child: Text('abcde')),
),
);
}
На экране по центру строка 'abcde' без AppBar Material.
Пример
Давайте обернём home в Material вручную:
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
void main()
{
runApp(
WidgetsApp(
color: Colors.white,
builder: (context, child) {
return Material(child: child!);
},
home: Scaffold(
body: Center(child: Text('12345')),
),
),
);
}
WidgetsApp даёт Navigator, а Material и Scaffold добавляют привычный каркас.
Смотрите также
-
виджет
MaterialApp,
который включает темуMaterialи виджеты по умолчанию -
виджет
Scaffold,
который часто кладут в home послеMaterial -
виджет
Material,
который рисует подложку дляInkWellи текста -
виджет
Theme,
который передаётThemeDataбезMaterialApp