draggable_container 1.0.2 draggable_container: ^1.0.2 copied to clipboard
A Very Smooth Draggable Widget Container. Each children is Draggable, Deletable and Fixable. Support SliverGridDelegate!
可以拖动子部件的容器部件 #
A Draggable Widget Container #
可拖动子部件,可删除子部件,可以固定子部件位置 #
Each children is draggable, deletable, fixable. #
截图 / Screenshots #
模式 / Mode #
-
正常模式 / Normal Mode:
- 不拦截子部件的手势事件
- Do not intercept the GestureDetector events of the child widget
- 不能拖动和删除子部件
- Can't drag and delete the children widget
-
编辑模式 / Edit mode:
- 长按子部件进入编辑模式
- Long press the children widget to enter the edit mode
- 进入编辑模式后,不再需要长按来拖动子部件,直接拖动就可以了
- In the edit mode, you can just drag the tile directly.
- 在可删除子部件上显示删除按钮
- Show the delete button on the deletable child widget
- 拦截所有子部件的手势事件
- Intercept the child widget gesture event.
- 可以拖动和删除子部件
- the children widget can drag and delete.
-
事件 / Events
- onChanged(List<T extends DraggableItem> items)
- 当子项目改变时触发(拖动过后,删除后)
- Trigger when the items changed(dragged, deleted)
- onEditModeChanged(bool mode)
- mode为true则进入了编辑模式,为false则退出了编辑模式.
- When mode is true then in the draggable mode. If false it mean exited the draggable mode.
- Future<bool> beforeRemove(T? item, int slotIndex)
- 删除item的确认事件,返回true删除,返回false不删除
- The event for confirm to delete a item, if return true then delete, if false then no action.
- onChanged(List<T extends DraggableItem> items)
-
DraggableContainerState的方法 / The DraggableContainerState methods:
-
List<T extends DraggableItem> items
- 项目列表。
- Item list.
-
Future<void> addSlot(<T extends DraggableItem>? item)
- 添加一个新的槽。
- Add a new slot.
-
Future<T extends DraggableItem> removeSlot(int index)
- 删除一个槽位,返回item。
- Remove the slot of index and return the item.
-
removeItem(<T extends DraggableItem> item)
-
removeItemAt(int index)
- 删除item。
- Delete item.
-
replaceItem(int index, <T extends DraggableItem>? item)
- 替换item。
- Replace item.
-