call method
Implementation
@override
Object? call(Interpreter interpreter, List<Object?> arguments,
Map<Symbol, Object?> namedArguments) {
Axis scrollDirection = Axis.horizontal;
var scrollDirectionParsed = namedArguments[const Symbol('scrollDirection')];
if (scrollDirectionParsed != null) {
scrollDirection = scrollDirectionParsed as Axis;
}
bool reverse = false;
var reverseParsed = namedArguments[const Symbol('reverse')];
if (reverseParsed != null) {
reverse = reverseParsed as bool;
}
PageController? controller;
var controllerParsed = namedArguments[const Symbol('controller')];
if (controllerParsed != null) {
controller = controllerParsed as PageController;
}
Function(int)? onPageChanged;
var onPageChangedParsed = namedArguments[const Symbol('onPageChanged')];
if (onPageChangedParsed != null) {
onPageChanged = (i) {
(onPageChangedParsed as LoxFunction).call(interpreter, [i], {});
};
}
DragStartBehavior dragStartBehavior = DragStartBehavior.start;
var dragStartBehaviorParsed =
namedArguments[const Symbol('dragStartBehavior')];
if (dragStartBehaviorParsed != null) {
dragStartBehavior = dragStartBehaviorParsed as DragStartBehavior;
}
ScrollPhysics? physics;
var physicsParsed = namedArguments[const Symbol('physics')];
if (physicsParsed != null) {
physics = physicsParsed as ScrollPhysics;
}
Clip clipBehavior = Clip.hardEdge;
var clipBehaviorParsed = namedArguments[const Symbol('clipBehavior')];
if (clipBehaviorParsed != null) {
clipBehavior = clipBehaviorParsed as Clip;
}
int? itemCount;
var itemCountParsed = namedArguments[const Symbol('itemCount')];
if (itemCountParsed != null) {
itemCount = itemCountParsed as int;
}
var itemBuilder = namedArguments[const Symbol('itemBuilder')];
if (itemBuilder == null) {
throw "itemBuilder required in ListView.builder";
}
return PageView.builder(
scrollDirection: scrollDirection,
reverse: reverse,
onPageChanged: onPageChanged,
controller: controller,
dragStartBehavior: dragStartBehavior,
physics: physics,
itemCount: itemCount,
clipBehavior: clipBehavior,
itemBuilder: (BuildContext context, int index) {
return (itemBuilder as LoxCallable)
.call(interpreter, [context, index], {}) as Widget;
},
);
}