在carousel_slider中,“ items”定义为“默认构造函数的轮播中显示的小部件”,而“ items”的类型为“ {List items}”。以下代码中的“ items:child”是什么意思?具体来说,它指的是哪个子小部件?
class CarouselDemo extends StatelessWidget {
CarouselController buttonCarouselController = CarouselController();
@override
Widget build(BuildContext context) => Column(
children: <Widget>[
CarouselSlider(
**items: child,**
carouselController: buttonCarouselController,
options: CarouselOptions(
autoPlay: false,
enlargeCenterPage: true,
viewportFraction: 0.9,
aspectRatio: 2.0,
initialPage: 2,
),
),
RaisedButton(
onPressed: () => buttonCarouselController.nextPage(
duration: Duration(milliseconds: 300), curve: Curves.linear),
child: Text('→'),
)
]
);
}
答案 0 :(得分:0)
它的工作方式类似于默认构造函数ListView(children: [widgets here])
-
所以只需将小部件放在CarouselSlider(items: [ Text('foo'),Text('bar'),])
为您提供信息-CarouselSlider已将构造器builder()
命名为按需构建小部件,类似于ListView.builder()
答案 1 :(得分:0)
我认为您可以忽略它(可能是拼写错误)并将其用作其他示例:
CarouselSlider(
options: CarouselOptions(height: 400.0),
items: [1,2,3,4,5].map((i) {
return Builder(
builder: (BuildContext context) {
return Container(
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.symmetric(horizontal: 5.0),
decoration: BoxDecoration(
color: Colors.amber
),
child: Text('text $i', style: TextStyle(fontSize: 16.0),)
);
},
);
}).toList(),
)
这只是您要在转盘上显示的项目。
如文档(https://pub.dev/documentation/carousel_slider/latest/carousel_slider/CarouselSlider-class.html)所述:
项目→列表<小部件> 这些小部件将显示在默认构造函数的轮播中。
因此,您只需要提供Widget类型的列表,它就可以是任何东西:图像,容器,您可以为其命名。