В main_activity.dart
имеется 4 нижние панели навигации с именами A, B, C и D.
main_activity.dart
class MainPage extends StatefulWidget {
static const ROUTE = '/mainPage';
@override
State<StatefulWidget> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
int _selectedIndex = 2;
final _tabs = [
A(),
B(),
C(),
D(),
];
@override
Widget build(BuildContext context) {
return WillPopScope(
child: Scaffold(
body: _tabs[_selectedIndex],
bottomNavigationBar: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
currentIndex: _selectedIndex,
items: [
...
],
onTap: (index) => setState(() {
_selectedIndex = index;
}),
),
),
onWillPop: () => _requestPop(context),
);
}
}
Первоначально этооткроет страницу на вкладке C. Когда я нажму на вкладку B, она покажет страницу B, которая содержит плавающую кнопку действия. При нажатии кнопки с плавающим действием она вызовет add_B.dart
. Моя проблема заключается в том, что когда я нажимаю кнопку «Назад» в add_B.dart
, он возвращается к main_activity
и открывает вкладку С. Как мне сделать так, чтобы вместо этого открывалась вкладка B?
add_B.dart
onWillPop: (){
_backToPreviousPage(context);
},
void _backToPreviousPage(BuildContext context) {
Navigator.of(context).pushReplacementNamed(MainPage.ROUTE);
}