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

So verwenden Sie async und await in JS

Inhaltsverzeichnis 1. asynchron 2. warten: 3. Umf...

Tiefgreifendes Verständnis von UID und GID in Docker-Containern

Standardmäßig werden Prozesse im Container mit Ro...

So ändern Sie die Länge eines Eingabetextfelds entsprechend seinem Inhalt

Erste: Code kopieren Der Code lautet wie folgt: &l...

Detaillierte Erklärung der Ansichtszusammenfassungsdefinition im Angular-Framework

Vorwort Als Front-End-Framework, das „für große F...

Einführung in Docker-Container

Docker-Übersicht Docker ist eine Open-Source-Lösu...

Zusammenfassung der grundlegenden Verwendung des $-Symbols in Linux

Linux-Version: CentOS 7 [root@azfdbdfsdf230lqdg1b...

vite2.x implementiert das On-Demand-Laden von Ant-Design-Vue@next-Komponenten

1. Version verwenden vite:2.0 Ant-Design-Vue: 2.0...

Eine kurze Diskussion zum Verständnis von TypeScript-Indexsignaturen

Inhaltsverzeichnis 1. Was ist eine Indexsignatur?...

JavaScript-Farbbetrachter

In diesem Artikelbeispiel wird der spezifische Ja...

So übertragen Sie Dateien zwischen Windows und Linux

Dateiübertragung zwischen Windows und Linux (1) V...

Eine kurze Diskussion über die häufig verwendeten APIs der VUE uni-app

Inhaltsverzeichnis 1. Routing und Seitensprung 2....

Erstellen Sie in 5 Minuten einen WebRTC-Videochat

Im vorherigen Artikel habe ich den detaillierten ...