parse method

  1. @override
Widget parse(
  1. Map<String, dynamic> map,
  2. BuildContext buildContext,
  3. ClickListener? listener
)
override

parse the json map into a flutter widget.

Implementation

@override
Widget parse(Map<String, dynamic> map, BuildContext buildContext,
    ClickListener? listener) {
  var scrollDirection = Axis.vertical;
  if (map.containsKey("scrollDirection") &&
      "horizontal" == map["scrollDirection"]) {
    scrollDirection = Axis.horizontal;
  }
  int? crossAxisCount = map['crossAxisCount'];
  bool? reverse = map.containsKey("reverse") ? map['reverse'] : false;
  bool? shrinkWrap = map.containsKey("shrinkWrap") ? map["shrinkWrap"] : false;
  double? cacheExtent =
      map.containsKey("cacheExtent") ? map["cacheExtent"]?.toDouble() : 0.0;
  EdgeInsetsGeometry? padding = map.containsKey('padding')
      ? parseEdgeInsetsGeometry(map['padding'])
      : null;
  double? mainAxisSpacing = map.containsKey('mainAxisSpacing')
      ? map['mainAxisSpacing']?.toDouble()
      : 0.0;
  double? crossAxisSpacing = map.containsKey('crossAxisSpacing')
      ? map['crossAxisSpacing']?.toDouble()
      : 0.0;
  double? childAspectRatio = map.containsKey('childAspectRatio')
      ? map['childAspectRatio']?.toDouble()
      : 1.0;
  var children = DynamicWidgetBuilder.buildWidgets(
      map['children'], buildContext, listener);

  var pageSize = map.containsKey("pageSize") ? map["pageSize"] : 10;
  var loadMoreUrl =
      map.containsKey("loadMoreUrl") ? map["loadMoreUrl"] : null;
  var isDemo = map.containsKey("isDemo") ? map["isDemo"] : false;

  GridViewParams params = GridViewParams(
      crossAxisCount: crossAxisCount,
      scrollDirection: scrollDirection,
      reverse: reverse,
      shrinkWrap: shrinkWrap,
      cacheExtent: cacheExtent,
      padding: padding,
      mainAxisSpacing: mainAxisSpacing,
      crossAxisSpacing: crossAxisSpacing,
      childAspectRatio: childAspectRatio,
      children: children,
      pageSize: pageSize,
      loadMoreUrl: loadMoreUrl,
      isDemo: isDemo);
  return GridViewWidget(params, buildContext);
}