İçeriğe geç / Skip to content / Zum Inhalt
Ahmet Balaman LogoAhmet Balaman

Flutter: BottomNavigationBar im Vergleich zu NavigationBar

Ahmet Balaman
FlutterBottomNavigationBarNavigationBarMaterial 3NavigationUI

Flutter bietet zwei starke Optionen für die untere Navigation: die klassische BottomNavigationBar und die NavigationBar aus Material 3. Beide lösen dasselbe Problem, unterscheiden sich aber in Design und Verhalten.

Live-Demo

Sie können das Beispiel zur unteren Navigation in der interaktiven Demo unten ausprobieren:

💡 Falls das Beispiel oben nicht lädt, klicken Sie auf DartPad, um es in einem neuen Tab auszuführen.

Welches sollten Sie verwenden?

  • BottomNavigationBar: Eine solide Wahl für klassische mobile Apps.
  • NavigationBar: Der modernere Weg im Sinne von Material 3.

Dieser Artikel zielt auf Suchanfragen wie „flutter bottomnavigationbar vs navigationbar“ und „material 3 navigation flutter“.

Warum BottomNavigationBar weiterhin genutzt wird

Viele bestehende Apps sind rund um das klassische Muster gebaut. Es unterstützt außerdem die Stile fixed und shifting, was es flexibel macht.

BottomNavigationBar(
  currentIndex: index,
  onTap: (value) => setState(() => index = value),
  items: const [
    BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Home'),
    BottomNavigationBarItem(icon: Icon(Icons.search), label: 'Search'),
  ],
)

Was NavigationBar verändert

Mit Material 3 wirkt die untere Navigation weicher, breiter und optisch moderner. Der ausgewählte Zustand und die Symbolgestaltung wirken zeitgemäßer.

NavigationBar(
  selectedIndex: index,
  onDestinationSelected: (value) => setState(() => index = value),
  destinations: const [
    NavigationDestination(icon: Icon(Icons.home_outlined), selectedIcon: Icon(Icons.home), label: 'Home'),
    NavigationDestination(icon: Icon(Icons.search), label: 'Search'),
  ],
)

Unterschied im Design

BottomNavigationBar kann dichter und kompakter wirken. NavigationBar wirkt luftiger und passt besser zu Material 3.

Zustand erhalten

Unabhängig davon, welches Widget Sie wählen: IndexedStack ist oft der beste Weg, den Zustand einer Seite beim Tab-Wechsel zu erhalten.

body: IndexedStack(
  index: index,
  children: const [HomePage(), SearchPage()],
)

Navigationsarchitektur

Die eigentliche Entscheidung betrifft nicht nur das Widget. Sie müssen auch sicherstellen, dass ein Tab-Wechsel den Zustand der einzelnen Seiten nicht zurücksetzt.

Häufig gestellte Fragen

Muss ich NavigationBar verwenden, wenn ich Material 3 nutze?

Nein, aber es passt besser zur Designsprache.

Ist BottomNavigationBar veraltet?

Nein. Es ist weiterhin gültig, wirkt nur klassischer.

Warum ist IndexedStack wichtig?

Es verhindert, dass der Seitenzustand beim Tab-Wechsel zurückgesetzt wird.

Zusammenfassung

BottomNavigationBar und NavigationBar lösen dasselbe Problem mit unterschiedlicher Designsprache. Der visuelle Stil Ihrer App und die verwendete Material-Version sollten die Wahl bestimmen.

Kommentare