Voici comment vous pouvez utiliser une icône provenant d'actifs
ImageIcon(
AssetImage("images/icon_more.png"),
color: Color(0xFF3A5A98),
),
Essayez cet exemple pour BottomNavBar cliquez sur
Donc là, ce que vous voulez remplacer est BottomNavigationBarItem
new BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text('Home'),
),
à
new BottomNavigationBarItem(
icon: ImageIcon(
AssetImage("images/icon_more.png"),
color: Color(0xFF3A5A98),
),
title: Text('Home'),
),
Vous pouvez vous renseigner sur la navigation en lisant l'article que j'ai partagé.
UPDATE Voici un exemple comme vous l'avez demandé.
Donc, ici, la variable _children contient la liste des pages que vous voulez faire naviguer en fonction de la sélection de BottomNavBarItem.
La façon dont nous naviguons est la suivante : lorsque nous appuyons sur un élément de l'onglet, nous définissons son index en utilisant la fonction onTabTapped Lorsque l'index change, la vue est modifiée en conséquence, car nous avons demandé au corps de montrer l'index actuel des enfants.
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _currentIndex = 0;
final List<Widget> _children = [
Container(
color: Colors.red,
),
Container(
color: Colors.blue,
),
Container(
color: Colors.green,
)
];
void onTabTapped(int index) {
setState(() {
_currentIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _children[_currentIndex],
bottomNavigationBar: BottomNavigationBar(
onTap: onTabTapped, // new
currentIndex: _currentIndex, // new
items: [
new BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text('Home'),
),
new BottomNavigationBarItem(
icon: Icon(Icons.mail),
title: Text('Messages'),
),
new BottomNavigationBarItem(
icon: Icon(Icons.person), title: Text('Profile'))
],
),
);
}
}