Ejemplo n.º 1
0
 public _ActiveItem(
     AnimationController controller,
     int itemIndex,
     AnimatedListRemovedItemBuilder removedItemBuilder
     )
 {
     this.controller         = controller;
     this.itemIndex          = itemIndex;
     this.removedItemBuilder = removedItemBuilder;
 }
Ejemplo n.º 2
0
        public void removeItem(int index, AnimatedListRemovedItemBuilder builder, TimeSpan?duration = null)
        {
            duration = duration ?? _kDuration;
            D.assert(index >= 0);
            D.assert(builder != null);
            D.assert(duration != null);
            int itemIndex = _indexToItemIndex(index);

            D.assert(itemIndex >= 0 && itemIndex < _itemsCount);
            D.assert(_activeItemAt(_outgoingItems, itemIndex) == null);
            _ActiveItem         incomingItem = _removeActiveItemAt(_incomingItems, itemIndex);
            AnimationController controller   = incomingItem?.controller
                                               ?? new AnimationController(duration: duration, value: 1.0f, vsync: this);
            _ActiveItem outgoingItem = new _ActiveItem(controller, itemIndex, builder);

            setState(() => {
                _outgoingItems.Add(outgoingItem);
                _outgoingItems.Sort();
            });

            controller.reverse().then((_) => {
                _removeActiveItemAt(_outgoingItems, outgoingItem.itemIndex).controller.dispose();
                foreach (_ActiveItem item in _incomingItems)
                {
                    if (item.itemIndex > outgoingItem.itemIndex)
                    {
                        item.itemIndex -= 1;
                    }
                }
                foreach (_ActiveItem item in _outgoingItems)
                {
                    if (item.itemIndex > outgoingItem.itemIndex)
                    {
                        item.itemIndex -= 1;
                    }
                }

                setState(() => _itemsCount -= 1);
            });
        }
Ejemplo n.º 3
0
 public void removeItem(int index, AnimatedListRemovedItemBuilder builder, TimeSpan?duration = null)
 {
     duration = duration ?? _kDuration;
     _sliverAnimatedListKey.currentState.removeItem(index, builder, duration: duration);
 }