moveRight method
void
moveRight()
Implementation
void moveRight() {
var item = widget.lists![draggedListIndex!].items![draggedItemIndex!];
var itemState = listStates[draggedListIndex!].itemStates[draggedItemIndex!];
widget.lists![draggedListIndex!].items!.removeAt(draggedItemIndex!);
listStates[draggedListIndex!].itemStates.removeAt(draggedItemIndex!);
if(listStates[draggedListIndex!].mounted) {
listStates[draggedListIndex!].setState(() {});
}
if(draggedListIndex != null){
draggedListIndex = draggedListIndex! + 1;
}
double closestValue = 10000;
draggedItemIndex = 0;
for (int i = 0; i < listStates[draggedListIndex!].itemStates.length; i++) {
if (listStates[draggedListIndex!].itemStates[i].mounted && listStates[draggedListIndex!].itemStates[i].context != null) {
RenderBox box = listStates[draggedListIndex!].itemStates[i].context.findRenderObject() as RenderBox;
Offset pos = box.localToGlobal(Offset.zero);
var temp = (pos.dy - dy! + (box.size.height / 2)).abs();
if (temp < closestValue) {
closestValue = temp;
draggedItemIndex = i;
dyInit = dy;
}
}
}
widget.lists![draggedListIndex!].items!.insert(draggedItemIndex!, item);
listStates[draggedListIndex!].itemStates.insert(draggedItemIndex!, itemState);
canDrag = false;
if(listStates[draggedListIndex!].mounted) {
listStates[draggedListIndex!].setState(() {});
}
if (boardViewController != null && boardViewController.hasClients) {
int? tempListIndex = draggedListIndex;
int? tempItemIndex = draggedItemIndex;
boardViewController
.animateTo(draggedListIndex! * widget.width, duration: new Duration(milliseconds: 400), curve: Curves.ease)
.whenComplete(() {
RenderBox object = listStates[tempListIndex!].context.findRenderObject() as RenderBox;
Offset pos = object.localToGlobal(Offset.zero);
leftListX = pos.dx;
rightListX = pos.dx + object.size.width;
RenderBox box = listStates[tempListIndex].itemStates[tempItemIndex!].context.findRenderObject() as RenderBox;
Offset itemPos = box.localToGlobal(Offset.zero);
topItemY = itemPos.dy;
bottomItemY = itemPos.dy + box.size.height;
Future.delayed(new Duration(milliseconds: widget.dragDelay), () {
canDrag = true;
});
});
}
if(mounted){
setState(() { });
}
}