Flutter: учимся создавать AppBar
Любое приложение чаще всего запускается с главного экрана, на котором расположено некое меню. С него и начнем. Возьмём приложение из предыдущей статьи, и продолжим «стругать»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import 'package:flutter/material.dart'; class Page1 extends StatefulWidget { _Page1State createState() => _Page1State(); // сюда передаем текущее состояние страницы } class _Page1State extends State<Page1> { // _ впереди класса, означает чтоб скрыть доступ из другх файлов @override Widget build(BuildContext context) { return Scaffold( // чаще всего используемый "корневой" виджет, который позволяет добавлять в себя другие: AppBar, BottomNavigationBar,Drawer, FloatingActionButton и т.п. appBar: AppBar( title: Text("Инвентаризация"), leading: new Icon(Icons.menu), actions: <Widget>[ new IconButton( onPressed: (){}, icon: new Icon(Icons.exit_to_app) ) ] ), body: Center( child: Text( "Ууу как всё запущено пациент..", textAlign: TextAlign.center, style: Theme.of(context).textTheme.headline3, ) ) ); } } |
Здесь мы добавили иконку развертываемого меню в левом углу и виджет-кнопку «Выхода» из приложения.
Чтобы реализовать выход из приложения, нужно добавить импорт библиотеки и в OnPressed собственно команду выхода:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
... import 'package:flutter/services.dart'; ... onPressed: () { if (Platform.isAndroid) { SystemChannels.platform.invokeMethod( 'SystemNavigator.pop'); } else { exit(0); }; }, |
Как видите, тут мы уже подобрались к толике кросплатформенности. Что работает на одной платформе, может не работать на другой. И функционал «выхода» в одной из этих специфик.