Первая страница в моем стеке имеет BottomNavigationBar
. Первая вкладка вызывает FutureBuilder
, который возвращает PageView.builder
. Проведение по нему приводит к переходу на страницу 2.
Раньше нажатие Navigator.pop(context)
на второй странице возвращало меня на страницу One. Но после добавления BottomNavigationBar на страницу 2 кнопка больше не возвращается. Вместо этого я получаю черный экран.
Почему добавление BottomNavigationBar
на страницу 2 останавливает его возвращение на страницу 1?
Любопытно, но с помощью обычной кнопки Android назад на моем телефон ДЕЙСТВИТЕЛЬНО работает. Разве использование Navigator.pop(context)
не должно быть таким же, как использование кнопки возврата на телефоне Android? Если нет, как я могу заставить мою кнопку вести себя так же, как кнопка возврата Android?
Вот код для второй страницы;
class HomeReply extends StatefulWidget {
@override
_HomeReplyState createState() => new _HomeReplyState();
}
class _HomeReplyState extends State<HomeReply> {
@override
void initState() {
super.initState();
}
static List<Widget> _myPages = <Widget>[
ReplyStage(),
Account(),
];
int _selectedIndex = 0;
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
Widget build(BuildContext context) {
var socialProvider = Provider.of<SocialProvider>(context);
return MaterialApp(
home: FutureBuilder(
future: Future.wait([socialProvider.loadCurrentName(), socialProvider.loadCurrentAvatar()]),
builder: (context, snapshot) {
if (snapshot.hasData) {
return
Scaffold(
appBar: AppBar(
title: Text(
"Back to "Original Post",
),
leading: new IconButton(
icon: new Icon(
Icons.arrow_back,
),
onPressed: () {
Navigator.pop(context);
},
),
),
body: _myPages[_selectedIndex],
bottomNavigationBar: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
items: <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(
Icons.home,
),
title: Text('Home'),
),
BottomNavigationBarItem(
icon: Consumer<SocialProvider>(
builder: (context, socialProvider, child) {
return Image.network(snapshot.data[1],
);
}),
title: Consumer<SocialProvider>(
builder: (context, socialProvider, child) {
return Text(snapshot.data[0]);
}
),
),
],
currentIndex: _selectedIndex,
onTap: _onItemTapped,
),
);
} else if(snapshot.hasError) {
return Center(child: CircularProgressIndicator());
} else{
return Center(child: CircularProgressIndicator());
}
}
),
);
}
}