gpt4 book ai didi

flutter - 如何将切换按钮映射到它们各自的变量?

转载 作者:行者123 更新时间:2023-12-03 03:31:21 24 4
gpt4 key购买 nike

当用户按下相应的切换按钮时,我想在屏幕上显示12张图像的集合。
为了简单起见,我会说我有3张图片:

img.Image image1 = img.decodeImage(_imageFile.readAsBytesSync());
img.Image image2 = img.decodeImage(_imageFile2.readAsBytesSync());
img.Image image3 = img.decodeImage(_imageFile3.readAsBytesSync());

List<bool> isSelected = [true, false, false];

//only showing relevant portion of @build function
ToggleButtons(
color: Colors.teal,
selectedColor: Colors.blueGrey,
children: [
Icon(Icons.accessibility),
Icon(Icons.pets),
Icon(Icons.phone),
],
isSelected: isSelected,
onPressed: (index){
setState(() {
isSelected[index] = !isSelected[index];
print(isSelected);
});
},
),
根据用户按下的按钮,我要显示该图像。我不想为 isSelected的所有可能组合编写if-else语句,并且基于 isSelected列表,我将显示图像,例如,在其默认状态下 [true, false, false],仅应显示 image1
我将如何获得 isSelected的所有可能组合?为此,我找到了 pig 蹄库: https://pub.dev/packages/trotter,但是显然它不接受bool列表。
在获得如何映射的列表的所有可能组合之后,每个图像都将显示在其各自的切换按钮上吗?

最佳答案

您可以在此处使用ListView.builder
将图像存储在List<Image> images = [image1, image2, image3,...]之类的数组中。
该代码将类似于以下内容:

ListView.builder(
itemCount: isSelected.length,
itemBuilder: (context, index) {
// Only render the image if it is selected.
return isSelected[index] ? images[index] : Container();
},
);
最好是通过制作一个类来抽象化它(因为每个 ListImage都有一个isSelected和Image,我们称之为它。
如有其他疑问,请随时发表评论。谢谢 :)

关于flutter - 如何将切换按钮映射到它们各自的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63714639/

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