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

Flutter: AppBar-Widget und Anpassung

Ahmet Balaman
FlutterAppBarNavigationWidgetUIMaterial

AppBar ist ein Widget am oberen Rand der Seite, das standardmäßig in jedem Scaffold enthalten ist. Es kann einen Titel, Navigationsbuttons und Aktionsbuttons enthalten.

Live-Demo

Sie können dieses Widget im interaktiven Beispiel unten ausprobieren:

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

Grundlegende Verwendung

Scaffold(
  appBar: AppBar(
    title: Text('Page Title'),
  ),
  body: Center(child: Text('Content')),
)

Wichtige Eigenschaften

Eigenschaft Beschreibung
title Titel-Widget
leading Widget auf der linken Seite (meist der Zurück-Button)
actions Liste der Buttons auf der rechten Seite
backgroundColor Hintergrundfarbe
foregroundColor Farbe von Symbolen und Text
elevation Stärke des Schattens
centerTitle Titel zentrieren
automaticallyImplyLeading Automatischer Zurück-Button

Actions verwenden

AppBar(
  title: Text('Title'),
  actions: [
    IconButton(
      icon: Icon(Icons.search),
      onPressed: () {},
    ),
    IconButton(
      icon: Icon(Icons.more_vert),
      onPressed: () {},
    ),
  ],
)

Leading anpassen

AppBar(
  leading: IconButton(
    icon: Icon(Icons.menu),
    onPressed: () {
      // Open drawer
    },
  ),
  title: Text('Title'),
)

Suchleiste integrieren

AppBar(
  title: TextField(
    decoration: InputDecoration(
      hintText: 'Search...',
      border: InputBorder.none,
      prefixIcon: Icon(Icons.search),
    ),
  ),
)

AppBar mit Farbverlauf

AppBar(
  title: Text('Gradient'),
  flexibleSpace: Container(
    decoration: BoxDecoration(
      gradient: LinearGradient(
        colors: [Colors.purple, Colors.blue],
        begin: Alignment.topLeft,
        end: Alignment.bottomRight,
      ),
    ),
  ),
)

SliverAppBar

AppBar, die beim Scrollen schrumpft und sich wieder ausdehnt:

CustomScrollView(
  slivers: [
    SliverAppBar(
      expandedHeight: 200,
      floating: false,
      pinned: true,
      flexibleSpace: FlexibleSpaceBar(
        title: Text('Title'),
        background: Image.network(
          'https://example.com/image.jpg',
          fit: BoxFit.cover,
        ),
      ),
    ),
    SliverList(
      delegate: SliverChildBuilderDelegate(
        (context, index) => ListTile(title: Text('Item $index')),
        childCount: 50,
      ),
    ),
  ],
)

Zusammenfassung

  • AppBar: Leiste am oberen Seitenrand
  • title: Titel-Widget
  • leading: Linke Seite (Zurück-Button, Menü)
  • actions: Buttons auf der rechten Seite
  • SliverAppBar: Scrollbare AppBar

Die AppBar ist eine grundlegende Komponente für die Navigation in Ihrer App.

Kommentare