当新项目出现在屏幕上时,我想进行水平列表视图和背景颜色更改像this我无法使用listview执行此操作,因为无法根据当前项目索引更改容器颜色有关如何执行此操作的任何想法?
PS。我制作了一个动画容器,它的子级是页面视图,但是我想要的是列表视图而不是页面视图
class _MyHomePageState extends State<MyHomePage> {
int _index = 0;
List<Color> colors = [
Colors.yallow,
Colors.blue
];
@override
Widget build(BuildContext context) {
final restData = Provider.of<ResturantsProvider>(context);
final rest = restData.rest;
return Scaffold(
body: AnimatedContainer(
duration: Duration(microseconds: 300),
curve: Curves.linear,
color: colors[_index],
child: PageView.builder(
onPageChanged: (i) {
setState(() {
_index = i;
});
},
scrollDirection: Axis.horizontal,
itemCount: rest.length,
itemBuilder: (context, index) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(
height: 50,
),
LogoHomePage(
logoImg: rest[index].logoImg,
),
ResturantListView(
restImg: rest[index].restImg,
restName: rest[index].restName,
restRate: rest[index].restRate,
restType: rest[index].restType,
time: rest[index].time,
color: rest[index].color,
)
],
);
},
),
),
);
}
}
VisibilityDetector(
key: Key("yourKey"),
onVisibilityChanged: (VisibilityInfo info) {
//get visibilityInfo here
//pass the index of child to parent here based on that parent changes color
},
child: YourListItemChild();
)