Flutter router

Первый вариант

Для начала создадим пару экруанов между которыми будем перемещаться. Приведу код одного экрана. Для примера его хватит:

import 'package:flutter/material.dart';

class Screen1 extends StatelessWidget {

final Color color;
Screen1(this.color);

@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Screen 1"),
backgroundColor: color
),
body: new Center(
child: new Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
new RaisedButton(onPressed:(){
button1(context);
} ,child: new Text("Go to Screen 2"),)
],
),
) ,
);
}
}

void button1(BuildContext context){
print("Button 1");
Navigator.of(context).pushNamed('/screen2');
}

Тут представлен код обычного класса, у которого есть свойство color, значением которого мы расскрашиваем навигационную панель.

Теперь  в коде приложение надо добавить массив маршрутов:

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.red,
),
home: new MyHomePage(title: 'Flutter Demo Home Page'),
routes: <String, WidgetBuilder> {

Теги:

Dart flutter