Переход на второй экран в Flutter
Когда одного Scaffold
мало, второй экран оформляют отдельным
виджетом с собственным деревом.
Переход делают через стек маршрутов:
Navigator
кладёт новую страницу поверх текущей.
Метод Navigator.push принимает
MaterialPageRoute
с builder, который возвращает
виджет нового экрана. Анимация сдвига
справа - стандартная для Material на Android:
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: HomeScreen()));
}
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Home')),
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.push(
context, // from a widget under MaterialApp
MaterialPageRoute<void>(
builder: (context) => const DetailsScreen(),
),
);
},
child: const Text('More'),
),
),
);
}
}
class DetailsScreen extends StatelessWidget {
const DetailsScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Details')),
body: const Center(child: Text('Second screen')),
);
}
}
С главного экрана откройте второй с заголовком
'Settings' и текстом по центру
'Settings will be here'. Кнопка на
главной - 'Open settings'.