首页 > 解决方案 > 如何在 Flutter 的 Choice Chip 中不选择索引的情况下打印值

问题描述

我正在使用chips_choice库并获取 api 数据,然后显示此 api 数据,chips_choice其中显示的是“Apple”和“Banana”,默认情况下选择第一个索引是“Apple”。所以我的问题是默认选择第一个索引,我如何打印已经选择的索引而不手动单击或选择它?下面是示例飞镖代码。

String specialRequest = "";
Row(
children: [
GestureDetector(
onTap: (){
print(specialRequest); // I want to print "Apple" without selecting or clicking manually .
},
child: Text('What is the occasion')),
            Padding(
              padding: const EdgeInsets.only(left: 10.0),
              child: Container(
                width: MediaQuery.of(context).size.width * 0.45,
                child: ListView.builder(
                    shrinkWrap: true,
                    scrollDirection: Axis.horizontal,
                    itemCount: data.data!.occassions!.length,
                    itemBuilder: (BuildContext context, int index) {
return ChoiceChip(
label: Text(data.data!.occassions![index]!.name!), // Api data displaying is "Apple" "Banana"
                        selected: occasionIndex == index,
                        selectedColor: TuxedoColor.redColor,
                        onSelected: (bool selected) {
                          specialRequest = data.data!.occassions![index]!.id!;
                          setState(() {
                            occasionIndex = selected ? index : 0;
                          });
                        },
                        backgroundColor: Colors.white,
                        labelStyle: TextStyle(
                            color: Colors.black,
                            fontWeight: FontWeight.bold),
                      );
                    }),
              ),
            )
          ],
        ),

标签: flutterdart

解决方案


如果我理解得很好,您想打印值或索引。

改变这个:

                    itemBuilder: (BuildContext context, int index) {
                      return ChoiceChip(

对此:

                itemBuilder: (BuildContext context, int index) {
                  specialRequest = data.data!.occassions![index]!.id!; //***New Line ***
                  print(specialRequest);
                  return ChoiceChip(

让我知道你是否还有别的意思


推荐阅读