web-dev-qa-db-fra.com

Flutter / Dart: Personnalisez la hauteur de la barre de navigation inférieure

Existe-t-il un moyen de personnaliser la hauteur de BottomNavigationBar?

J'ai actuellement un BottomNavigationBar avec des onglets pour taper/naviguer par balayage, mais la hauteur par défaut (même après avoir réduit le texte et l'icône) est trop élevée.

@override
Widget build(BuildContext context) {
return Scaffold(
  appBar: AppBar(
    backgroundColor: Colors.blue,
    title: Text( 'RefLog', style: Styles.headerLarge ),
    actions: <Widget>[
      new IconButton(
        icon: Icon(Icons.list),
        onPressed: () {},
      )
    ],
  ),
  body: DefaultTabController(
    length: 3,
    child: Scaffold(
      body: TabBarView(
        children: _children,
      ),
      bottomNavigationBar: TabBar(
        tabs: [
          Tab( text: 'One', icon: Icon(Icons.import_contacts, size: 20.0) ),
          Tab( text: 'Two', icon: Icon(Icons.restaurant, size: 20.0) ),
          Tab( text: 'Three', icon: Icon(Icons.record_voice_over, size: 20.0) ),
        ],
        labelStyle: TextStyle(fontSize: 12.0),
        labelColor: Colors.white,
        unselectedLabelColor: Colors.white30,
        indicatorSize: TabBarIndicatorSize.label,
        indicatorColor: Colors.white,
      ),
      backgroundColor: Colors.blue,
    ),
  ),
 );
}
7
Jesse

J'ai eu le même problème, la hauteur de BottomNavigationBar ne peut pas être remplacée, ma solution a été redimensionnée les icônes en utilisant SizedBox, cela diminue la hauteur, autre solution finale a été de mettre à jour la taille de police de la propriété title, voici mon exemple:

new BottomNavigationBarItem(
              icon:new SizedBox(
                child: new IconButton(
                    icon: new Image.asset("assets/images/icon_ar.png"),
                    onPressed: () {}),
                width: 38,
                height: 38,
              ),
              title: new Text("", style: new TextStyle(fontSize: 0),))

Cela fait que mon BottomNavigationBar avait une taille standard sur les deux plates-formes.

0
Osmar I. Cancino