Flutter 摆动式集装箱

Flutter 摆动式集装箱,flutter,button,toggle,gesture,Flutter,Button,Toggle,Gesture,如何实现附加图像中背景的自定义切换类型。我想更改onTap上的背景色和图标更改 您可以轻松地为颜色和图标设置一个变量,这样当onTap出现时,它会更改该变量,然后设置状态。下面我包含了一小段代码,以进一步说明我试图解释的内容。如果您在使用您已经编写的代码实现我的概念时遇到任何问题,请告诉我并向我展示一些您的代码,我可以提供帮助 Widget theCard() { Color theColor; IconData theIcon; return GestureDetec

如何实现附加图像中背景的自定义切换类型。我想更改onTap上的背景色和图标更改


您可以轻松地为颜色和图标设置一个变量,这样当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方法中的逻辑,我猜名为白色的变量是保存颜色的变量,您正在检查它是否为蓝色,然后为它指定白色,如果它是白色的,你也在分配白色,这是流程,在其他部分,你必须给它分配一个蓝色…感谢你的解决方案,它工作得很好。