Вернитесь с помощью кнопки
Часть раздела Списки и экраны путешествия по Flutter на Coddy. Урок 20 из 33.
Стрелка назад — не единственный способ вернуться. Кнопка «Сохранить» или «Готово» тоже должна закрывать экран при нажатии. Navigator.pop снимает верхний экран со стека, как и стрелка назад:
ElevatedButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text('Save'),
)Push и pop — пара: push помещает экран в стек, а pop снимает его. Повторный переход на главный экран не вернёт тебя назад. Он поместит второй главный экран поверх предыдущего, и стрелка назад будет вести к настройкам.
Задание
ЛегкоКнопка Save на экране настроек ничего не делает. Сделай так, чтобы она закрывала экран настроек и возвращала на главный экран с помощью Navigator.pop.
Попробуйте сами
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
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,
MaterialPageRoute(builder: (context) => const SettingsScreen()),
);
},
child: const Text('Open settings'),
),
),
);
}
}
class SettingsScreen extends StatelessWidget {
const SettingsScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Settings')),
body: Center(
child: ElevatedButton(
onPressed: () {},
child: const Text('Save'),
),
),
);
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Списки и экраны
1Прокручиваемые списки
Список с прокруткойЭлементы спискаНачало и конецНажатие на элемент спискаРазделители между строками5Больше одного экрана
Откройте новый экранСтрелка «Назад»Вернитесь с помощью кнопкиПередайте данные на экранПолучите результат обратно6Вкладки, боковые панели и свайпы
Вкладки с панелью навигацииЗаливные значки для открытой вкладкиБоковая панельУдаление свайпомОтмена свайпаПотренируйтесь самостоятельно: Онлайн-компилятор Flutter