Я хотел бы иметь нижнюю панель навигации со списком на домашней странице. Я почему-то не могу заставить его работать, потому что мой класс Main не имеет состояния и я хочу установить состояние с помощью setState (), что явно невозможно. Это мой код:
class Home extends StatelessWidget {
int _selectedIndex = 0;
void _onItemTapped(int index){
setState((){
_selectedIndex = index;
});
}
final AuthService _auth = AuthService();
@override
Widget build(BuildContext context) {
return StreamProvider<List<Auftrag>>.value(
value: DatabaseService().auftraege,
child: Scaffold(
backgroundColor: Colors.brown[50],
appBar: AppBar(
title: Text('Home title'),
backgroundColor: Colors.brown[400],
elevation: 0.0,
actions: <Widget>[
FlatButton.icon(
icon: Icon(Icons.person),
label: Text('logout'),
onPressed: () async{
await _auth.signOut();
},
)
],
),
body: AuftraegeList(),
bottomNavigationBar: BottomNavigationBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text('Home'),
),
BottomNavigationBarItem(
icon: Icon(Icons.business),
title: Text('Business'),
),
BottomNavigationBarItem(
icon: Icon(Icons.school),
title: Text('School'),
),
],
currentIndex: _selectedIndex,
selectedItemColor: Colors.amber[800],
onTap: _onItemTapped,
),
));
}
}
Я думаю, что это на 99% готово. Лучше всего, если вы сможете скопировать, отредактировать, вставить его быстро. Я думаю, что это самый простой способ сделать это.
Спасибо !!