gpt4 book ai didi

flutter - 当用户第一次点击时,它发生了变化,但第二次没有

转载 作者:IT王子 更新时间:2023-10-29 07:16:18 24 4
gpt4 key购买 nike

我使用容器小部件设计了一个圆圈。我需要在用户单击时更改 BoxDecoration。它仅在第一次单击时发生变化。用户再次点击我需要再次更改

   GestureDetector(
onTap: () {
setState(() {
radiocheck = true;//problem is here, if user click second time always true, is that way to reverse dicision
});
},
child: Container(
height: 14.0,
width: 14.0,
decoration:radiocheck?
BoxDecoration(
color: Color(0xFF4A90E2),
shape: BoxShape.circle,
):
BoxDecoration(
border: Border.all(color:Color(
0xFF4A90E2), width: 1),
shape: BoxShape.circle,
),
),
),

最佳答案

将容器分离成一个新函数效果最好。然后用一些 bool 或 int 来检查之前是否按下了按钮。

就像:

Widget _someFunction(){
return GestureDetector(
onTap: () {
setState(() {}); // this should already get the correct radiocheck
// otherwise, you can remove it from the container below and make if/else statement here
},
child: _buildContainer();
}

Widget _buildContainer(){
BoxDecoration boxDecoration;

if(radiocheck){
boxDecoration = BoxDecoration(
color: Color(0xFF4A90E2),
shape: BoxShape.circle,
);
radiocheck = false;
} else {
boxDecoration= BoxDecoration(
border: Border.all(color:Color(
0xFF4A90E2), width: 1),
shape: BoxShape.circle,
);
radiocheck = true;
}

return Container(
height: 14.0,
width: 14.0,
decoration: boxDecoration,
);
}

编辑:在您编辑的消息中,我看到您想要/需要更改状态。

关于flutter - 当用户第一次点击时,它发生了变化,但第二次没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57295303/

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