पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

reorderableitemsview कवर
पैकेज विवरणv2.0.1

reorderableitemsview

क्रमबद्ध समर्थन के साथ फ्लटर स्टैगर्ड ग्रिड दृश्य या ListView के लिए एक पैकेज

30-दिन डाउनलोड
186
लाइक
55
Pub अंक
60

पैकेज इंस्टॉल करें

flutter pub add reorderableitemsview

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

एक फ्लटर पैकेज जो सुचारू ड्रैग-एंड-ड्रॉप कार्यक्षमता के साथ पुनर्व्यवस्थित छल्ले ग्रिड या सूची दृश्य सक्षम करता है। यह मानक ListView और GridView को बढ़ाया है ताकि आइटम को गतिशील रूप से पुनर्व्यवस्थित किया जा सके, जो कार्य सूचियों, चित्र गैलरी या किसी भी ऐसे यूआई के लिए आदर्श है जिसमें उपयोगकर्ता द्वारा आइटम को पुनर्व्यवस्थित करने की आवश्यकता हो। पैकेज हल्का है और मौजूदा फ्लटर प्रोजेक्ट में आसानी से एकीकृत होता है। यह लंबवत और क्षैतिज व्यवस्था दोनों का समर्थन करता है और पुनर्व्यवस्था घटनाओं को संभालने के लिए कॉलबैक प्रदान करता है।

उपयोग

  • ड्रैग एंड ड्रॉप कार्य प्रबंधन
  • पुनर्व्यवस्थित करने योग्य छवि गैलरी
  • कस्टमाइज़ेबल उत्पाद सूचियाँ
  • इंटरैक्टिव कंटेंट सॉर्टिंग
  • डायनामिक फॉर्म फील्ड व्यवस्था

मुख्य विशेषताएँ

  • स्टैगर्ड ग्रिड लेआउट समर्थन
  • स्मूथ ड्रैग-एंड-ड्रॉप पुनर्व्यवस्था
  • पुनर्व्यवस्था घटनाओं के लिए कॉलबैक
  • लंब और क्षैतिज लेआउट का समर्थन करता है
  • हल्का और आसान एकीकरण

इनके लिए उपयुक्त

  • इंटरैक्टिव लिस्ट बनाने वाले डेवलपर्स
  • क्रमबद्ध यूआई घटकों की आवश्यकता वाले ऐप
  • गतिशील आइटम क्रम के साथ परियोजनाएँ
  • ड्रैग गेस्चर वाले UI-भारी अनुप्रयोग
  • Flutter शुरुआती उन्नत विजेट्स का अन्वेषण कर रहे हैं

विचार योग्य बातें

  • केवल मूल रीऑर्डरिंग, बिना एनिमेशन के
  • आदेश परिवर्तनों के लिए कोई निर्मित स्थायित्व नहीं है
  • सेव्ड ऑर्डर के लिए हाथ से राज्य प्रबंधन की आवश्यकता होती है
  • बहुत बड़े डेटासेट के लिए अनअनुकूलित
  • नेस्टेड रीऑर्डरिंग के लिए मूल समर्थन नहीं है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

reorderableitemsview

pub package

A Flutter package for staggered grid view or ListView with ordering support

Info

This plugin uses most for its code from ReorderableListView

This Plugin combines the ReorderableListView and flutter_staggered_grid_view to provide Draggable behaviour for Staggered GridView

Usage

To use this plugin, add reorderableitemsview as a dependency in your pubspec.yaml file.

Example Staggered GridView
import 'package:flutter/material.dart';
import 'package:reorderableitemsview/reorderableitemsview.dart';

class GridPageView extends StatefulWidget {
  @override
  _GridPageViewState createState() => _GridPageViewState();
}

class _GridPageViewState extends State<GridPageView> {

  List<StaggeredTileExtended> _listStaggeredTileExtended = <StaggeredTileExtended>[
    StaggeredTileExtended.count(2, 2),
    StaggeredTileExtended.count(2, 1),
    StaggeredTileExtended.count(1, 2),
    StaggeredTileExtended.count(1, 1),
    StaggeredTileExtended.count(2, 2),
    StaggeredTileExtended.count(1, 2),
    StaggeredTileExtended.count(1, 1),
    StaggeredTileExtended.count(3, 1),
    StaggeredTileExtended.count(1, 1),
    StaggeredTileExtended.count(4, 1),
  ];

  List<Widget> _tiles = <Widget>[
    _Example01Tile(Key("a"),Colors.green, Icons.widgets),
    _Example01Tile(Key("b"),Colors.lightBlue, Icons.wifi),
    _Example01Tile(Key("c"),Colors.amber, Icons.panorama_wide_angle),
    _Example01Tile(Key("d"),Colors.brown, Icons.map),
    _Example01Tile(Key("e"),Colors.deepOrange, Icons.send),
    _Example01Tile(Key("f"),Colors.indigo, Icons.airline_seat_flat),
    _Example01Tile(Key("g"),Colors.red, Icons.bluetooth),
    _Example01Tile(Key("h"),Colors.pink, Icons.battery_alert),
    _Example01Tile(Key("i"),Colors.purple, Icons.desktop_windows),
    _Example01Tile(Key("j"),Colors.blue, Icons.radio),
  ];


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("List Demo"),
      ),
      body: ReorderableItemsView(
        onReorder: (int oldIndex, int newIndex) {
          setState(() {
            _tiles.insert(newIndex, _tiles.removeAt(oldIndex));
          });
        },
        children: _tiles,
        crossAxisCount: 4,
        isGrid: true,
        staggeredTiles: _listStaggeredTileExtended,
        longPressToDrag: false,
      ),
    );
  }
}

class _Example01Tile extends StatelessWidget {
  _Example01Tile(Key key, this.backgroundColor, this.iconData): super(key: key);

  final Color backgroundColor;
  final IconData iconData;

  @override
  Widget build(BuildContext context) {
    return new Card(
      color: backgroundColor,
      child: new InkWell(
        onTap: () {},
        child: new Center(
          child: new Padding(
            padding: EdgeInsets.all(4.0),
            child: new Icon(
              iconData,
              color: Colors.white,
            ),
          ),
        ),
      ),
    );
  }
}
Example ListView
import 'package:flutter/material.dart';
import 'package:reorderableitemsview/reorderableitemsview.dart';

class ListPageView extends StatefulWidget {
  @override
  _ListPageViewState createState() => _ListPageViewState();
}

class _ListPageViewState extends State<ListPageView> {

  List<Widget> _tiles = <Widget>[
    _Example01Tile(Key("a"),Colors.green, Icons.widgets),
    _Example01Tile(Key("b"),Colors.lightBlue, Icons.wifi),
    _Example01Tile(Key("c"),Colors.amber, Icons.panorama_wide_angle),
    _Example01Tile(Key("d"),Colors.brown, Icons.map),
    _Example01Tile(Key("e"),Colors.deepOrange, Icons.send),
    _Example01Tile(Key("f"),Colors.indigo, Icons.airline_seat_flat),
    _Example01Tile(Key("g"),Colors.red, Icons.bluetooth),
    _Example01Tile(Key("h"),Colors.pink, Icons.battery_alert),
    _Example01Tile(Key("i"),Colors.purple, Icons.desktop_windows),
    _Example01Tile(Key("j"),Colors.blue, Icons.radio),
  ];


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("List Demo"),
      ),
      body: ReorderableItemsView(
        onReorder: (int oldIndex, int newIndex) {
          setState(() {
            _tiles.insert(newIndex, _tiles.removeAt(oldIndex));
          });
        },
        feedBackWidgetBuilder: (context, index, child) {
          return Container(
            child: child,
          );
        },
        children: _tiles,
        longPressToDrag: false,
      ),
    );
  }
}

class _Example01Tile extends StatelessWidget {
  _Example01Tile(Key key, this.backgroundColor, this.iconData): super(key: key);

  final Color backgroundColor;
  final IconData iconData;

  @override
  Widget build(BuildContext context) {
    return new Card(
      color: backgroundColor,
      child: new InkWell(
        onTap: () {},
        child: new Center(
          child: new Padding(
            padding: EdgeInsets.all(4.0),
            child: new Icon(
              iconData,
              color: Colors.white,
            ),
          ),
        ),
      ),
    );
  }
}
Options
@required this.children, // List<Widget>
@required this.onReorder, // Callback onReorder(int oldIndex, int newIndex)
this.scrollController, // ScrollController
this.scrollDirection = Axis.vertical, // Axis Ignored in GridView
this.padding, 
this.staggeredTiles, // Only used in GridView, check gridview example above
this.crossAxisCount = 3, // Only used in GridView
this.isGrid = false, // if true renders as gridview
this.reverse = false,
this.longPressToDrag = true,
this.mainAxisSpacing = 0.0, // Only used in GridView
this.crossAxisSpacing = 0.0, // Only used in GridView
this.feedBackWidgetBuilder,

Demo

Buy Me a Coffee

Buy Me A Coffee

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 1 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट