buildContent method

  1. @override
Widget? buildContent()
override

Implementation

@override
Widget? buildContent() {
  Widget? contentWidget;
  if (datas.isNotEmpty) {
    final top = Radius.circular(topRadius);
    final bottom = Radius.circular(bottomRadius);
    IndexedWidgetBuilder itemBuilder = (BuildContext context, int index) {
      // 无标题第一个item 设置上部分圆角
      BorderRadius? borderRadius;
      if (index == 0 && !hasTitle) {
        borderRadius = BorderRadius.vertical(top: top);
      } else if (index == datas.length - 1 &&
          (!hasNegative && !hasPositive)) {
        borderRadius = BorderRadius.vertical(bottom: bottom);
      }
      return buildItem(context, index, borderRadius);
    };

    contentWidget = ScrollConfiguration(
        behavior: NoneOverScrollBehavior(),
        child: GridView.builder(
          reverse: this.reverse,
          shrinkWrap: true,
          padding: EdgeInsets.zero,
          itemBuilder: itemBuilder,
          itemCount: datas.length,
          gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
            crossAxisCount: this.crossAxisCount,
            mainAxisSpacing: this.mainAxisSpacing,
            crossAxisSpacing: this.crossAxisSpacing,
            childAspectRatio: this.childAspectRatio,
            mainAxisExtent: this.mainAxisExtent,
          ),
        ));
  }
  return contentWidget;
}