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

Flutter: DropdownButton verwenden und Eigenschaften

Ahmet Balaman
FlutterDropdownButtonSpinnerWidgetUIForm

DropdownButton ist ein Auswahl-Widget, das unter Android als Spinner bekannt ist und beim Antippen eine Liste anzeigt. Es eignet sich ideal, um mehrere Optionen anzubieten, von denen genau eine gewählt wird.

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

Mit dem DropdownButton wählt man einen Eintrag aus einer Liste:

String? selectedValue;

DropdownButton<String>(
  value: selectedValue,
  hint: Text('Make a selection'),
  items: ['Option 1', 'Option 2', 'Option 3'].map((String value) {
    return DropdownMenuItem<String>(
      value: value,
      child: Text(value),
    );
  }).toList(),
  onChanged: (String? newValue) {
    setState(() {
      selectedValue = newValue;
    });
  },
)

Wichtige Eigenschaften

Eigenschaft Beschreibung
value Der ausgewählte Wert
hint Widget, das ohne Auswahl angezeigt wird
items Liste der DropdownMenuItem
onChanged Funktion, die bei einer Änderung aufgerufen wird
isExpanded Passt die Breite an das übergeordnete Widget an
underline Widget für die Unterstreichung
icon Symbol des Aufklapp-Pfeils
dropdownColor Hintergrundfarbe der aufgeklappten Liste

DropdownButtonFormField

Innerhalb von Formularen sollte DropdownButtonFormField bevorzugt werden. Es unterstützt die Validierung.

DropdownButtonFormField<String>(
  value: selectedValue,
  decoration: InputDecoration(
    labelText: 'Category',
    border: OutlineInputBorder(),
    prefixIcon: Icon(Icons.category),
  ),
  items: categories.map((String category) {
    return DropdownMenuItem<String>(
      value: category,
      child: Text(category),
    );
  }).toList(),
  onChanged: (String? newValue) {
    setState(() {
      selectedValue = newValue;
    });
  },
  validator: (value) {
    if (value == null || value.isEmpty) {
      return 'Please select a category';
    }
    return null;
  },
)

Angepasste DropdownMenuItem

Sie können jeden Eintrag individuell gestalten:

DropdownMenuItem<String>(
  value: 'premium',
  child: Container(
    padding: EdgeInsets.symmetric(vertical: 8),
    child: Row(
      children: [
        Icon(Icons.star, color: Colors.amber),
        SizedBox(width: 10),
        Text('Premium Membership'),
        Spacer(),
        Container(
          padding: EdgeInsets.symmetric(horizontal: 8, vertical: 2),
          decoration: BoxDecoration(
            color: Colors.green,
            borderRadius: BorderRadius.circular(10),
          ),
          child: Text('Recommended', style: TextStyle(color: Colors.white, fontSize: 10)),
        ),
      ],
    ),
  ),
)

Zusammenfassung

  • DropdownButton: Flutter-Gegenstück zum Android-Spinner
  • DropdownMenuItem: Steht für einen Listeneintrag
  • DropdownButtonFormField: Für die Validierung in Formularen
  • isExpanded: Steuert die Breite
  • onChanged: Erfasst Änderungen der Auswahl

DropdownButton gehört zu den meistgenutzten Widgets, um von Nutzern eine einzelne Auswahl einzuholen.

Kommentare