flutter - Deselect one container while selecting another container in flutter
问题描述
I have three different containers, which I can select and deselect separately, like shown below:
bool 1Clicked = false;
bool 2Clicked = false;
bool 3Clicked = false;
GestureDetector(
onTap: (){
setState(() {
1Clicked = !1Clicked;
});
},
child: Container(
decoration: BoxDecoration(
color: 1Clicked? Colors.orange: Colors.white,
),
),
),
GestureDetector(
onTap: (){
setState(() {
2Clicked = !2Clicked;
});
},
child: Container(
decoration: BoxDecoration(
color: 2Clicked? Colors.orange: Colors.white,
),
),
),
GestureDetector(
onTap: (){
setState(() {
3Clicked = !3Clicked;
});
},
child: Container(
decoration: BoxDecoration(
color: 3Clicked? Colors.orange: Colors.white,
),
),
),
However, when I select both the first and second container, one after another, they are capable of being selected together. I want only one container among them to be selected, which means, I should deselect other containers while I select any of the one container. I have no idea on it, please help me out.
解决方案
Use setState in order to set to false the corresponding boolean
GestureDetector(
onTap: (){
setState(() {
1Clicked = !1Clicked;
2Clicked = false;
3Clicked = false;
});
},
child: Container(
decoration: BoxDecoration(
color: 1Clicked? Colors.orange: Colors.white,
),
),
),
GestureDetector(
onTap: (){
setState(() {
1Clicked = false;
2Clicked = !2Clicked;
3Clicked = false;
});
},
child: Container(
decoration: BoxDecoration(
color: 2Clicked? Colors.orange: Colors.white,
),
),
),
GestureDetector(
onTap: (){
setState(() {
1Clicked = false;
2Clicked = false;
3Clicked = !3Clicked;
});
},
child: Container(
decoration: BoxDecoration(
color: 3Clicked? Colors.orange: Colors.white,
),
),
),
推荐阅读
- node.js - npm install 命令以 root 用户身份运行良好,但如果以 jenkins 用户身份执行命令,则会引发错误
- angular - 发布 ASP.NET Core 2 Angular 6 SPA 模板应用程序
- angular - 使用 SpringBoot 将文件发送到 Angular2
- git - 如果我签出一个我从未工作过的分支并且有许多传出提交,是不是出了什么问题?
- android - Android - ActionBar 以编程方式设置高度
- c# - 将 Json 文件中的 Json 信息解析为字符串
- java - 为什么我们不能在方法覆盖时降低可见性(特别是默认公开)
- android-tv - 对谷歌 Android o 的操作
- google-colaboratory - 卡在 datalab 目录中,无法导航到我想要的目录
- jquery - 防止在同一页面上出现多个 toastr 实例