Bearbeiten von „Flutter-Widgets“

Zur Navigation springen Zur Suche springen

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 55: Zeile 55:
</pre>
</pre>


= Abwandlungen =
= Formular =
== Visibility ==
Damit kann die Sichtbarkeit eines Elements gesteuert werden. Ganz wichtig für GetX-Layouts!
 
Im folgenden Beispiel wird entweder das eine oder das andere Element angezeigt.
<pre>
final widgets = <Widget>[
  Visibility(
    visible: controller.isEmpty.value,
    child: buildEmptyImage()
  ),
  Visibility(
    visible: !controller.isEmpty.value,
    child: buildImage()
  ),
];
</pre>
 
== Tooltip ==
Dieses Element erzeugt einen Erklärungstext, der erscheint, wenn die Maus kurz auf dem Kindelement verweilt.
<pre>
final widget = Tooltip(
  message: 'Löschen',
  child: Icon(Icons.delete_forever_outlined)
);
</pre>
 
== Inkwell (Reaktionsfläche) ==
Mit diesem Element ist es möglich, eine Aktion zu definieren, wenn das Kindelement berührt/angeklickt wird.
<pre>
final Widget = Material(
  color: Colors.green,
  child: InkWell(
    onTap: () async { Get.toNamed(Routes.routeAction); }
    child: SizedBox(width: 200, height: 200, child: image.value,),
    ),
);
</pre>
 
= Formular (Text und Dropdown) =
Jedes Formular benötigt einen '''Key''', der normalerweise im Controller erzeugt/gespeichert wird:
Jedes Formular benötigt einen '''Key''', der normalerweise im Controller erzeugt/gespeichert wird:


Zeile 108: Zeile 69:


<pre>
<pre>
final items = [
  DropdownMenuItem<bool>(value: false, child: Text('inaktive)),
  DropdownMenuItem<bool>(value: true, child: Text('active))
];
final form = Form(
final form = Form(
   key: controller.formKey,
   key: controller.formKey,
Zeile 117: Zeile 74:
     children: [
     children: [
       TextFormField(
       TextFormField(
         decoration: InputDecoration(labelText: 'Age'),
         decoration: InputDecoration(labelText: 'Data'),
         validator: checkInt,
         validator: checkInt,
         onSaved: (input) => controller.age.value = input,
         onSaved: (input) => controller.controllerData = input,
         controller: controller.controllerAge,
         controller: ,
      ),
      DropdownButtonFormField<bool>(
        value: fieldData.locationId,
        items: items,
        isExpanded: true,
        decoration: const InputDecoration(labelText: 'Status'),
        onSaved: (value) => controller.status.value = value,
       ),
       ),
   ]),
   ]),
Zeile 134: Zeile 84:


void store(controller, String input){
void store(controller, String input){
  if (controller, formKey.currentState?.validate() ?? false) {
    if (controller, formKey.currentState?.validate() ?? false) {
    controller.formKey.currentState?.save();
      controller.formKey.currentState?.save();
  }
    }
}
}
</pre>
</pre>
Zeile 163: Zeile 113:
);
);


</pre>
== DropDownField ==
<pre>
import 'package:dropdown_textfield/dropdown_textfield.dart';
...
final widget =  DropDownTextField(
  // initialValue: "name4",
  controller: controller.nameController,
  clearOption: false,
  enableSearch: true,
  searchDecoration: const InputDecoration(hintText: "Type part of the name"),
  validator: (value) value != null ? null : "Required field",
  dropDownItemCount: 6,
  dropDownList: const [
    DropDownValueModel(name: 'name1', value: "value1"),
    DropDownValueModel(name: 'name2', value: "value2", toolTipMsg: "Select an item from the list"),
DropDownValueModel(name: 'name3', value: "value3"),
DropDownValueModel(name: 'name4', value: "value4", toolTipMsg: "This is value4",
  ],
  onChanged: (val) { controller.selectedName = val; },
);
</pre>
</pre>


Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Info-Theke-Beiträge automatisch unter der „Gemeinfreiheit“ stehen (siehe Info-Theke:Urheberrechte für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)