gpt4 book ai didi

flutter - 只更改一个项目样式而不是每个人。改变了所有 ListTile 而不是一个

转载 作者:行者123 更新时间:2023-12-03 02:55:54 28 4
gpt4 key购买 nike

当我点击 ListTile 后,应该只更改一项,但是当我点击那里时更改了所有 ListTile。

  class _HomeScreenState extends State<HomeScreen> {
bool checked = false;

@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView.builder(
itemCount: 7,
itemBuilder: (BuildContext context, int i) {
child: return Container(
decoration: new BoxDecoration(
color: checked ? Colors.teal : Colors.white
),
child: ListTile(
onTap: () => setState(() => checked = true),
title: Text("My product"),
),
);
},
),
);
}
}

最佳答案

试试下面的代码,

class _HomeScreenState extends State<HomeScreen> {
int checkedIndex = -1;

@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView.builder(
itemCount: 7,
itemBuilder: (BuildContext context, int i) {
return Container(
decoration: BoxDecoration(
color: checkedIndex == i ? Colors.teal : Colors.white
),
child: ListTile(
onTap: () => setState(() => checkedIndex = i),
title: Text("My product"),
),
);
},
),
);
}
}

关于flutter - 只更改一个项目样式而不是每个人。改变了所有 ListTile 而不是一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58798719/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com