Kategorien, Pakete und Repositories suchen

Cover von stack_board
Paketdetailsv0.2.6+1

stack_board

Ein Flutter-Paket für Stapelbrett, Komponenten, die für jedes Widget gestapelt und bearbeitet werden können.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
151
Likes
84
Pub-Punkte
140

Paket installieren

flutter pub add stack_board

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Stack Board ist ein Flutter-Paket, das Benutzern ermöglicht, stapelbare, bearbeitbare Widgets zu erstellen und zu verwalten. Es erlaubt die Schichtung, Umordnung und interaktive Änderung von Komponenten und ist daher ideal für Anwendungen, die eine dynamische visuelle Zusammensetzung erfordern. Das Paket unterstützt verschiedene Plattformen wie Android, iOS, Web, macOS, Windows und Linux und gewährleistet damit breite Kompatibilität. Für kreative Arbeitsabläufe konzipiert, ist es besonders nützlich in Zeichen-, Mal- und Unterschriftsanwendungen, bei denen Benutzer mehrere überlappende Elemente einfach verwalten müssen.

Anwendungsfälle

  • Interaktive Design-Oberflächen
  • Digitale Signaturwerkzeuge
  • Layer-Draw-Apps
  • Multimedia-Zusammensetzung
  • Widget-basierte Bearbeitungsworkflows

Hauptmerkmale

  • Stapelbare und neu anordnende Komponenten
  • Echtzeit-Widget-Editierung
  • Plattformübergreifende Unterstützung
  • Flexible Komponentenintegration
  • Interaktive Layer-Verwaltung

Geeignet für

  • Designer, die schichtbasierte Benutzeroberflächen erstellen
  • Entwickler, die interaktive Zeichenwerkzeuge erstellen
  • Anwendungen, die mehrschichtige Bearbeitung erfordern
  • Bildbasierte Bildung- oder Kreativ-Apps
  • Benutzer, die anpassbare Widget-Anordnungen benötigen

Hinweise

  • Erfordert sorgfältige Zustandsverwaltung für komplexe Stapel
  • Die Leistung kann bei einer großen Anzahl gestapelter Widgets variieren
  • Am besten geeignet für Anwendungsfälle mit mittlerer Komplexität
  • Möglicherweise ist benutzerdefinierte Logik für erweiterte Interaktionen erforderlich
  • Eingeschränkte integrierte Stiloptionen außer grundlegendem Stapeln

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

Stack Board

A Flutter package of custom stack board.

pub package GitHub stars GitHub forks CodeFactor FlutterCandies


Try it: Demo


1.使用 StackBoardController


import 'package:stack_board/stack_board.dart';

StackBoard(
    controller: _boardController,
    ///添加背景
    background: const ColoredBox(color: Colors.grey),
),
添加自适应文本


_boardController.add(
    const AdaptiveText(
        'Flutter Candies',
        tapToEdit: true,
        style: TextStyle(fontWeight: FontWeight.bold),
    ),
);

添加自适应图片


_boardController.add(
    StackBoardItem(
        child: Image.network('https://avatars.githubusercontent.com/u/47586449?s=200&v=4'),
    ),
);

添加画板


_boardController.add(
    const StackDrawing(
        caseStyle: CaseStyle(
            borderColor: Colors.grey,
            iconColor: Colors.white,
            boxAspectRatio: 1,
        ),
    ),
);

添加自定义item


1.继承自 StackItemContent 和 StackItem

class ColorContent extends StackItemContent {
  ColorContent({required this.color});

  Color color;

  @override
  Map<String, dynamic> toJson() {
    return <String, dynamic>{
      'color': color.value,
    };
  }
}

class ColorStackItem extends StackItem<ColorContent> {
  ColorStackItem({
    required Size size,
    String? id,
    Offset? offset,
    double? angle,
    StackItemStatus? status,
    ColorContent? content,
  }) : super(
          id: id,
          size: size,
          offset: offset,
          angle: angle,
          status: status,
          content: content,
        );

  @override
  ColorStackItem copyWith({
    Size? size,
    Offset? offset,
    double? angle,
    StackItemStatus? status,
    ColorContent? content,
  }) {
    return ColorStackItem(
      id: id, // <= must !!
      size: size ?? this.size,
      offset: offset ?? this.offset,
      angle: angle ?? this.angle,
      status: status ?? this.status,
      content: content ?? this.content,
    );
  }
}

2.使用controller添加

import 'dart:math' as math;

...

/// Add custom item
void _addCustomItem() {
    final Color color = Colors.primaries[Random().nextInt(Colors.primaries.length)];
    _boardController.addItem(
        ColorStackItem(
        size: const Size.square(100),
        content: ColorContent(color: color),
        ),
    );
}

3.使用customBuilder构建

StackBoard(
    controller: _boardController,
        /// 如果使用了继承于StackBoardItem的自定义item
        /// 使用这个接口进行重构
      customBuilder: (StackItem<StackItemContent> item) {
          if (...) {

           ...

          } else if (item is ColorStackItem) {
            return Container(
              width: item.size.width,
              height: item.size.height,
              color: item.content?.color,
            );
          }

          ...
        },
)

Kategorien

Abhängigkeiten

Abhängigkeiten 2 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.