android - 更改字符串列表的颜色 - Flutter
问题描述
我有一个字符串列表,当我点击其中一个时,我想更改颜色,这是我到目前为止的代码:
var list = ["name", "city", "country", "email"];
appBar: AppBar(
title:Row(
mainAxisAlignment: MainAxisAlignment.end,
children: List.generate(4, (index) {
return GestureDetector(
child: Container(
margin: EdgeInsets.all(8),
child: Text(
list[index],
style: TextStyle(color: Colors.red),
),
),
onTap: () {},
);
}),
),
),
解决方案
考虑到它是一个有状态的小部件,您可以按如下方式执行此操作:
var list = ["name", "city", "country", "email"];
List <int>tapped = [];
appBar: AppBar(
title:Row(
mainAxisAlignment: MainAxisAlignment.end,
children: List.generate(4, (index) {
return GestureDetector(
child: Container(
margin: EdgeInsets.all(8),
child: Text(
list[index],
style: TextStyle(color: tapped.contains(index) ? Colors.red : Colors.black),
),
),
onTap: () {
if(tapped.contains(index)){
this.setState(() {tapped.remove(index);});
} else {
this.setState(() {tapped.add(index);});
}
},
);
}),
),
),
推荐阅读
- ios - 多目标应用程序中的 Firebase 问题
- three.js - `Vector3().project()` 中的 `z` 值是多少?
- python - TypeError:“RobertaTokenizer”对象不可调用
- angular - 来自来源的 Angular 和 WebApi Cors 请求已被 CORS 策略阻止
- python - 将 numpy 数组从 (2,) 重塑为 (2,1) 的效果
- php - 如何在php中按特定时区回显(时间前)
- perl - 在 Perl 中,如何在没有轮询但有超时的情况下监视文件更改?
- python - 如何从函数的参数中设置变量的名称?
- python - 如何解决“无法腌制本地对象 'CDLL.__init__.
._FuncPtr'”? - asp.net - Heroku.yml 构建所有服务映像,但容器无法通过 http 客户端进行通信