Flutter 摆动式集装箱
如何实现附加图像中背景的自定义切换类型。我想更改onTap上的背景色和图标更改Flutter 摆动式集装箱,flutter,button,toggle,gesture,Flutter,Button,Toggle,Gesture,如何实现附加图像中背景的自定义切换类型。我想更改onTap上的背景色和图标更改 您可以轻松地为颜色和图标设置一个变量,这样当onTap出现时,它会更改该变量,然后设置状态。下面我包含了一小段代码,以进一步说明我试图解释的内容。如果您在使用您已经编写的代码实现我的概念时遇到任何问题,请告诉我并向我展示一些您的代码,我可以提供帮助 Widget theCard() { Color theColor; IconData theIcon; return GestureDetec
您可以轻松地为颜色和图标设置一个变量,这样当onTap出现时,它会更改该变量,然后设置状态。下面我包含了一小段代码,以进一步说明我试图解释的内容。如果您在使用您已经编写的代码实现我的概念时遇到任何问题,请告诉我并向我展示一些您的代码,我可以提供帮助
Widget theCard() {
Color theColor;
IconData theIcon;
return GestureDetector (
onTap: () {
if(theColor == Colors.blue) {
theColor = Color.white;
theIcon = Icons.check;
}
else {
theColor = Colors.blue;
theIcon = Icons.remove;
}
setState(() {
})
},
child: Container(
color: theColor,
child: Icon(theIcon)
)
)
}
您只需在有状态小部件中分离该容器,并使用state类中的变量来控制是否切换该容器 例如:
var _isToggled = false
color: _isToggled? Colors.blue : Colors.white
onTap: (){
setState(){
_isToggled = !_isToggled;
}}
请注意,根据您的场景,您可以在开始时使用true或false,然后根据条件使用此变量来决定背景颜色和图标颜色
例如:
var _isToggled = false
color: _isToggled? Colors.blue : Colors.white
onTap: (){
setState(){
_isToggled = !_isToggled;
}}
您应该做的最后一件事是通过调用setState()在onTap方法内切换该变量的值,以反映使用该变量的新值重新生成小部件,这将更改条件的计算结果,从而移动到另一种情况
例如:
var _isToggled = false
color: _isToggled? Colors.blue : Colors.white
onTap: (){
setState(){
_isToggled = !_isToggled;
}}
通过这种方法,您将拥有一个满足您需求的独立小部件
祝你今天愉快 您的答案是正确的,先生,我已经完成了这个代码,但是颜色没有改变,请检查添加到我问题中的代码。仔细检查onTap方法中的逻辑,我猜名为白色的变量是保存颜色的变量,您正在检查它是否为蓝色,然后为它指定白色,如果它是白色的,你也在分配白色,这是流程,在其他部分,你必须给它分配一个蓝色…感谢你的解决方案,它工作得很好。