Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.0.2

spear_menu

Ein Flutter-Spear-Dropdown-Menü-Plugin. Unterstützt sowohl iOS als auch Android.

30-Tage-Downloads
12
Likes
38
Pub-Punkte
40

Paket installieren

flutter pub add spear_menu

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Spear Menu ist ein Flutter-Plugin, das einen schicken, anpassbaren Dropdown-Menü mit einem speerartigen Animations-Effekt bietet. Für iOS und Android entwickelt, verbessert es die Benutzerinteraktion durch fließende Übergänge und moderne Visualisierungen. Das Plugin lässt sich problemlos in bestehende Flutter-Anwendungen integrieren und bietet Entwicklern eine optisch ansprechende Möglichkeit, Optionen darzustellen. Mit minimalem Setup über `flutter pub add spear_menu` unterstützt es responsive Design und kann an verschiedene UI-Anforderungen angepasst werden. Ideal für Formulare, Einstellungen oder jede Oberfläche, die ein elegantes Auswahlverfahren benötigt.

Anwendungsfälle

  • Dropdown-Auswahl in mobilen Apps
  • Formularingabehandlungen
  • Einstellungsmenüs
  • Anpassbare UI-Komponenten
  • Interaktive Navigationselemente

Hauptmerkmale

  • Speer-artiger Animations-Effekt
  • Plattformübergreifende Unterstützung (iOS und Android)
  • Einfache Integration mit Flutter
  • Anpassbare Erscheinung
  • Kompatibilität mit responsive Design

Geeignet für

  • Mobile-App-Entwickler
  • UI/UX-Designer
  • Flutter-Anfänger
  • Apps, die animierte Dropdowns erfordern
  • Projekte mit modernen visuellen Themen

Hinweise

  • Beschränkt auf mobile Plattformen
  • Kenntnisse über Flutter-Layout erforderlich
  • Animation kann die Leistung auf Low-End-Geräten beeinträchtigen
  • Keine Web- oder Desktop-Unterstützung erwähnt
  • Benutzerdefinierte Stile erfordern zusätzlichen Code

Original-README

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

Flutter Spear Menu

Usage

A spear dropdown menu plugin. The Spear Menu widget is built to be below placed in the button or Icon widget, replacing the FloatingActionButton widget. it's possible to set anywhere in scaffold.

alt text

Example Usage (complete with all params):

You can find the demo at the 'example' folder.

First, you should set the context at somewhere in you code. Like below:

PopupMenu.context = context;
import 'package:flutter/material.dart';
import 'package:popup_menu/popup_menu.dart';
import 'CustomData.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(title: 'Popup Menu Example'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  PopupMenu menu;
  GlobalKey btnKey = GlobalKey();
  List<CustomData> menuList = new List<CustomData>();

  @override
  Widget build(BuildContext context) {
    PopupMenu.context = context;

    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(
        alignment: Alignment.topLeft,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.end,
          children: <Widget>[
            Container(
              child: MaterialButton(
                height: 10.0,
                key: btnKey,
                onPressed: menuData,
                child: Icon(Icons.menu,),
              ),
            )
          ],
        ),
      ),
    );
  }

  void menuData() {
    if(menuList.isEmpty){
      menuList.clear();
      menuList.add(CustomData('Copy', false));
      menuList.add(CustomData('Power', false));
      menuList.add(CustomData('Setting', true));
      menuList.add(CustomData('PopupMenu', false));
    }

    List<MenuItemProvider> setData = new List<MenuItemProvider>();
    setData.clear();
    for(var io in menuList){
      print("Result : " + io.name);
      setData.add(MenuItem(title: io.name, isActive: io.isShow));
    }

    PopupMenu menu = PopupMenu(
        //backgroundColor: Colors.teal,
        // lineColor: Colors.tealAccent,
        items: setData,

        onClickMenu: onClickMenu,
        stateChanged: stateChanged,
        onDismiss: onDismiss);
    menu.show(widgetKey: btnKey);
  }

  void onClickMenu(MenuItemProvider item) {
    menuList.map((element) {
      if(item.menuTitle == element.name){
        element.isShow = true;
      }else{
        element.isShow = false;
      }
    }).toList();

    print('Click menu -> ${item.menuTitle}');
  }

  void stateChanged(bool isShow) {
    print('menu is ${isShow ? 'showing' : 'closed'}');
  }

  void onDismiss() {
    print('Menu is dismiss');
  }

}

Issues & Feedback

Please file an issue to send feedback or report a bug. Thank you!

Contributing

Every pull request is welcome.

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.