Skip to content

03. Widgets

AnleAnja edited this page Jun 7, 2020 · 6 revisions

Allgemein

Die UI einer Anwendung wird im Code beschrieben. Dazu verwendet das Framework Widgets als Grundlage, die dann in Kombination die UI bilden. Das bedeutet, jedes Widget beschreibt einen Teil des UI und es gibt keine Aufteilung in Views, Models, Layouts und Controller, da diese Bestandteile alle in dem Widget Objekt vereint werden.

Ein Widget kann wiederum aus weiteren Widgets bestehen. Es bündelt Logik, Interaktion und Darstellung innerhalb eines Objekts. Bekannte und oft benötigte Interaktionen wie Buttons, Listen etc. gibt es bereits als vorgefertigte Widgets in Flutter. Auch die Anwendung selbst ist letztendlich ein Widget, die App UI kann als Widget Tree bezeichnet werden.

Um den Zusammenhang zum State herzustellen, kann man auch sagen, dass Widgets beschreiben, wie ihr View mit der aktuellen Konfiguration und dem State aussieht. Das bedeutet, ein Widget ist eine visuelle Komponente oder eine Komponente, die mit dem visuellen Aspekt einer Anwendung interagiert.

Beim Schreiben von neuen Widgets werden Subklassen von "StatelessWidget" oder "StatefulWidget" erstellt, je nachdem, ob das jeweilige Widget einen State managen soll oder nicht. Die Hauptaufgabe eines Widgets ist es, die Funktion "build()" zu implementieren. Widgets sind immer immutable, unabhängig davon, ob sie Stateless oder Stateful sind.

Der BuildContext wird in jeder "build()" Methode als Variable übergeben und verweist auf die Position eines Widgets in der Baumstruktur aller erstellten Widgets. Er enthält Informationen über jeden Vorfahren des aktuellen Widgets und ist ein einfacher Weg, auf alle Vorfahren zuzugreifen.

Stateless Widgets

Stateful Widgets

Inherited Widgets

Clone this wiki locally