flutter - 如何在 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),
);
}),
),
)
],
),
解决方案
如果我理解得很好,您想打印值或索引。
改变这个:
itemBuilder: (BuildContext context, int index) {
return ChoiceChip(
对此:
itemBuilder: (BuildContext context, int index) {
specialRequest = data.data!.occassions![index]!.id!; //***New Line ***
print(specialRequest);
return ChoiceChip(
让我知道你是否还有别的意思
推荐阅读
- android - 标记隐藏标记上的Android setRotation
- java - 如何将jtable只有一列数据插入DB mysql?
- matlab - 在matlab中执行多个嵌套for循环是否有更有效的方法?
- rx-java2 - RxJava/RxKotlin:如果一个源完成(不是全部),combineLatest 已经完成
- python - 密码保险库问题,代码未遵循 if 语句
- r - 底部使用grid.arrange和legend时x轴位置不同的问题
- android - 为什么我必须为数据库中的自动递增列创建一个设置器?
- azure - Azure 流量管理器加权路由,有多少重要?
- sql - 按 max(year) 选择一行并按名称分组,但还包括结果集中的其他值
- linux - 未找到 npm 命令“服务”,但已安装