build method
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,
))
],
);
}