build method

  1. @override
Widget build(
  1. BuildContext context,
  2. SwiperPluginConfig config
)

Implementation

@override
Widget build(BuildContext context, SwiperPluginConfig config) {
  // 处理边界情况
  if (config.itemCount > 20) {
    log(
      'The itemCount is too big, we suggest use FractionPaginationBuilder '
          'instead of DotSwiperPaginationBuilder in this situation',
    );
  }
  int activeIndex = config.activeIndex;
  // 用于存放小圆点
  List<Widget> list = [];
  for (var i = 0; i < config.itemCount; ++i) {
    if (activeIndex == i) {
      list.add(Container(
          key: Key('pagination_$i'),
          margin: EdgeInsets.all(space),
          child: PhysicalModel(
            color: Colors.transparent,
            borderRadius: BorderRadius.circular(10),
            clipBehavior: Clip.antiAlias,
            child: Container(
              color: activeColor,
              width: activeSize,
              height: size,
            ),
          )));
    } else {
      list.add(Container(
        key: Key('pagination_$i'),
        margin: EdgeInsets.all(space),
        child: ClipOval(
          // 圆角组件
          child: Container(
            color: color,
            width: size,
            height: size,
          ),
        ),
      ));
    }
  }
  return Stack(
    clipBehavior: Clip.none,
    children: [
      Positioned(
          left: 0,
          right: 0,
          bottom: bottom,
          child: Row(
            key: key,
            mainAxisSize: MainAxisSize.min,
            mainAxisAlignment: MainAxisAlignment.center,
            children: list,
          ))
    ],
  );
}