J’ai eu une approche différente. Je crée la bottomNavigationBar dans mon navigatorDelegate.
La fonction build de mon navigateurDelegate retourne un scaffold contenant la bottom navigation bar et le body contient le navigator avec la liste des pages. Le navigateurDelegate gère également la bottomNavigationBar
J’ai un écran liste qui permet d’afficher les détails des éléments de cette liste. En faisant de cette façon, la bottom navigation bar ne glisse pas avec le reste de l’écran.
Effectivement, sur chaque page, je rajoute le BottomNavigationBar… aucun intérêt !
C’est très judicieux de l’avoir rajouté dans le navigator delegate.
J’ai voulu faire la même chose mais … j’ai comme un problème
No overlay widget found. BottomNavigationBar widgets require an overlay widget ancestor for correct operation.
Message que je n’ai pas dans ma config actuelle.
Tu return quelque chose de particulier dans ton CustomBottomNavigationBar ou (comme moi) un simple BottomNavigationBar ?
ps : je viens de me rendre compte d’un tout autre problème que j’ai en rapport avec mon BottomNavigationBar (au cas où ca parle à quelqu’un)
Sur une page (flutter_map), lorsque je suis en attente de localisation (CircularProgressIndicator) et que je change de page, flutter tombe en anomalie dans la méthode dispose() :
Il semble que pour la BottomNavigationBar il y ai un souci …
Si on considère l’arbre des widgets suivants :
MaterialApp.router:
RouterDelegate:
Scaffold:
body = Navigator
bottomNavigationBar = BottomNavigationBar
Il y a dans ce cas un problème d’ancêtre Overlay … et on obtient une erreur :
No overlay widget found. BottomNavigationBar widgets require an overlay widget ancestor for correct operation.
En utilisant la < salomon_bottom_bar > on contourne le problème car il s’agit d’un ‹ simple › widget.
Pour ma part, ne voulant par utiliser cette dépendance et surtout pouvoir rester maître du design de la Bar, j’ai créé un widget MyCustomNavigationBar qui retourne un BottomAppBar