Erstellen Sie mit Flutter eine verschiebbare Stapel-Widget-Funktion

Erstellen Sie mit Flutter eine verschiebbare Stapel-Widget-Funktion

Dieser Beitrag konzentriert sich auf ein streng geheimes Flutter-Projekt, das ich für den Desktop und das Web entwickelt habe und das eine Canvas- und eine verschiebbare Knotenschnittstelle verwendet. Dieses Tutorial zeigt, wie ich Stapel verwende, um verschiebbare Funktionen mit Widgets zu erreichen.

Wie unten gezeigt.

Beispiel für ein verschiebbares Widget: Shake

Wir werden dem Stapel dynamisch Elemente hinzufügen und um sie zu unterscheiden, werde ich den Typer RandomColor verwenden. Also müssen wir dieses Paket hinzufügen.

zufällige Farbe:

Wir können dann die HomeView erstellen, die unseren Stapel enthält

Klasse HomeView erweitert StatefulWidget {
  @überschreiben
  _HomeViewState createState() => _HomeViewState();
}

Klasse _HomeViewState erweitert State<HomeView> {
  Liste<Widget> beweglicheElemente = [];

  @überschreiben
  Widget erstellen (BuildContext Kontext) {
    Gerüst zurückgeben (
        Körper: Stapel(
          Kinder: bewegliche Gegenstände,
        ));
  }
}

Die Funktionsweise ist denkbar einfach. Wir werden ein MoveableStackItem -Stateful-Widget haben. Es behält seine eigene Position und Farbe im Auge. Die Farbe wird bei der Initialisierung festgelegt und die Position über GestureDetector aktualisiert.

Klasse _MoveableStackItemState erweitert State<MoveableStackItem> {
  doppelte xPosition = 0;
  doppelte yPosition = 0;
  Farbe Farbe;

  @überschreiben
  void initState() {
    Farbe = ZufälligeFarbe().zufälligeFarbe();
    super.initState();
  }

  @überschreiben
  Widget erstellen (BuildContext Kontext) {
    return Positioniert(
      oben: yPosition,
      links: xPosition,
      Kind: GestureDetector(
        beiPanUpdate: (tapInfo) {
          setzeZustand(() {
            xPosition += tapInfo.delta.dx;
            yPosition += tapInfo.delta.dy;
          });
        },
        Kind:Container(
          Breite: 150,
          Höhe: 150,
          Farbe: Farbe,
        ),
      ),
    );
  }
}

Als letztes müssen Sie eine neue MoveableStackItem -Ansicht hinzufügen. Wir tun dies über eine schwebende Aktionsschaltfläche in HomeView.

 Gerüst zurückgeben (
  schwebenderActionButton:SchwimmenderActionButton(
    beim Drücken: () {
      setzeZustand(() {
        beweglichesElemente.add(BeweglichesStackItem());
      });
    },
  ),
  Körper: Stapel(
    Kinder: bewegliche Gegenstände,
  ));

Das ist es. Jetzt haben Sie einen beweglichen Stapel in Ihrer Ansicht.

Dies ist das Ende dieses Artikels zum Erstellen eines verschiebbaren Stapel-Widgets in Flutter. Weitere verwandte Inhalte zum Flutter-Stapel-Widget finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Über 1 Million StackOverflow Flutter 20-Fragen (empfohlen)

<<:  Detaillierte Erklärung verschiedener horizontaler und vertikaler Zentrierungsmethoden in HTML (Grundlagen)

>>:  Detaillierte Erläuterung der MySQL-Deadlock-Prüfung und Beispiele zur Deadlock-Entfernung

Artikel empfehlen

FastDFS- und Nginx-Integration zur Codeanalyse

FastDFS- und Nginx-Integration: Der Tracker wird ...

js Canvas zur Realisierung des Gobang-Spiels

In diesem Artikel wird der spezifische Code der L...

So fügen Sie Emoji-Ausdrücke in MySQL ein

Vorwort Als ich heute ein Feedback-Formular für e...

Mehrere Möglichkeiten zum Einfügen von SVG in HTML-Seiten

SVG (Scalable Vector Graphics) ist ein Bildformat...

Erläuterung der Konfiguration und Verwendung der MySQL-Speicher-Engine InnoDB

MyISAM und InnoDB sind die gängigsten Speicher-En...

Installation und Verwendung von TypeScript und grundlegende Datentypen

Der erste Schritt besteht darin, TypeScript globa...

Detaillierte Erklärung der Rolle statischer Variablen in MySQL

Detaillierte Erklärung der Rolle statischer Varia...

Eine detaillierte Einführung in die Betriebssystemebenen von Linux

Inhaltsverzeichnis 1. Einführung in die Linux-Sys...

Daten in der Layui-Tabellenzeile dynamisch bearbeiten

Inhaltsverzeichnis Vorwort Stil Funktion Beschrei...

MySQL-Datenoperation – Verwendung von DML-Anweisungen

veranschaulichen DML (Data Manipulation Language)...

Verbesserungen am Webserver zur Verbesserung der Website-Leistung

<br />Im ersten Abschnitt dieser Reihe haben...