Flutter 如何使用 Listview Builder 提出堆栈中的项目
Flutter How to bring forward a item in stack with Listview Builder
这是我的小部件。
ListView.builder(
scrollDirection: Axis.horizontal,
controller: scrollController,
shrinkWrap: true,
itemCount: 2,
itemBuilder: (BuildContext context, int index) {
return Tooltip(
message: controller.salonModel.barberListName(index),
decoration: BoxDecoration(
color: primary, borderRadius: BorderRadius.circular(10)),
child: Align(
widthFactor: 0.7,
alignment: Alignment.topCenter,
child: CircularPhotoContainer(
width: 50,
photoUrl: controller.salonModel.barberListPhotos(index),
borderColor: index == 0 ? secondary : bGroundColor,
color: bGroundColor,
borderWidth: 4,
radius: 100,
boxFit: BoxFit.cover,
opacity: 1,
),
),
);
}),
这是ui。
我想像这样提出我的第一个项目,但我没有那样做。
那我该怎么做呢?
在你的 ListView.builder
上使用 reverse: true,
如果你想在 UI 上订购商品,你可以使用索引作为 length-index-1
ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: 5,
reverse: true, //this
itemBuilder: (BuildContext context, int index) {.....
测试示例
class ListTe extends StatelessWidget {
const ListTe({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
List<Color> colors = [Colors.red, Colors.green, Colors.pink];
return Scaffold(
body: ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: colors.length,
reverse: true,
itemBuilder: (BuildContext context, int index) {
return Align(
widthFactor: 0.7,
alignment: Alignment.topCenter,
child: Container(
width: 50,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: colors[colors.length - 1 - index]),
),
);
},
),
);
}
}
这是我的小部件。
ListView.builder(
scrollDirection: Axis.horizontal,
controller: scrollController,
shrinkWrap: true,
itemCount: 2,
itemBuilder: (BuildContext context, int index) {
return Tooltip(
message: controller.salonModel.barberListName(index),
decoration: BoxDecoration(
color: primary, borderRadius: BorderRadius.circular(10)),
child: Align(
widthFactor: 0.7,
alignment: Alignment.topCenter,
child: CircularPhotoContainer(
width: 50,
photoUrl: controller.salonModel.barberListPhotos(index),
borderColor: index == 0 ? secondary : bGroundColor,
color: bGroundColor,
borderWidth: 4,
radius: 100,
boxFit: BoxFit.cover,
opacity: 1,
),
),
);
}),
这是ui。
我想像这样提出我的第一个项目,但我没有那样做。
那我该怎么做呢?
在你的 ListView.builder
上使用 reverse: true,
如果你想在 UI 上订购商品,你可以使用索引作为 length-index-1
ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: 5,
reverse: true, //this
itemBuilder: (BuildContext context, int index) {.....
测试示例
class ListTe extends StatelessWidget {
const ListTe({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
List<Color> colors = [Colors.red, Colors.green, Colors.pink];
return Scaffold(
body: ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: colors.length,
reverse: true,
itemBuilder: (BuildContext context, int index) {
return Align(
widthFactor: 0.7,
alignment: Alignment.topCenter,
child: Container(
width: 50,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: colors[colors.length - 1 - index]),
),
);
},
),
);
}
}