Flutter 如何对仅在检测到变化时运行的颤振功能进行编码?

Flutter 如何对仅在检测到变化时运行的颤振功能进行编码?,flutter,Flutter,我正在做一个应用程序在颤振有3个平面按钮能够设置值(1-3),当他们按下。现在我需要一个函数,可以打印一些消息根据它收到的值 value == 3 ? print("happy") : print("press any button"); value == 2 ? print("normal") : print("press any button"); value == 1 ? print("worst") : print("press any button"); 注意:每个按钮的ON按下功能

我正在做一个应用程序在颤振有3个平面按钮能够设置值(1-3),当他们按下。现在我需要一个函数,可以打印一些消息根据它收到的值

value == 3 ? print("happy") : print("press any button");
value == 2 ? print("normal") : print("press any button");
value == 1 ? print("worst") : print("press any button");
注意:每个按钮的ON按下功能只能设置值。检测更改的函数必须在不返回任何小部件的地方独立运行。一组按钮的简单onChanged()函数

供参考:

Widget flatbuttongrop(){
return Form(
child: Row(
  children: <Widget>[
     FlatButton(
            shape: CircleBorder(),
            color: Colors.red,
            child: Text("H"),
            onPressed: () {
             value = 1;
              //  return value = 1;
            },
          ),

           FlatButton(
            shape: CircleBorder(),
            color: Colors.yellow,
            child: Text("N"),
            onPressed: (){
            //  return value = 2;
            value = 2;
            },
          ),

           FlatButton(
            shape: CircleBorder(),
            color: Colors.green,
            child: Text("S"),
            onPressed: (){
              value = 3;
            },
          ),
  ],

),
onChanged: ()
{
  //If any flatbutton pressed then it must indicate here.
},
  );

}
Widget flatbuttongrop(){
报税表(
孩子:排(
儿童:[
扁平按钮(
形状:CircleBorder(),
颜色:颜色,红色,
子项:文本(“H”),
已按下:(){
数值=1;
//返回值=1;
},
),
扁平按钮(
形状:CircleBorder(),
颜色:颜色,黄色,
子项:文本(“N”),
已按下:(){
//返回值=2;
数值=2;
},
),
扁平按钮(
形状:CircleBorder(),
颜色:颜色。绿色,
子:文本(“S”),
已按下:(){
数值=3;
},
),
],
),
一旦更改:()
{
//如果按下任何扁平按钮,则必须在此处指示。
},
);
}
提前谢谢

我假设您使用的是有状态小部件,如果是,下面的步骤将解决您的问题

您可以使用String函数来实现这一点

String getStringValue(int value){
  if(value == 1)
   return "Worst"
  else if(value == 2)
   return "Normal"
  else if(value == 3)
   return "Happy"
  else
   return "Press Any Button"
}
在onPressed中,您可以像这样更新代码

onPressed: (){
  setState((){
    value = someIntValue;
  });
}
无论你在哪里需要使用这个字符串,只要调用

getStringValue(someIntValue)

您必须在按下的
on按钮内执行此操作
callback谢谢您的考虑。每个按钮的ON按钮仅用于设置值。请看我的便笺@pskinkthere无法检测
int
值是否从1更改为2-您必须在平面按钮回调中执行此操作(或将
int
更改为某个值)@TedHenry我不想要小部件生成器。我想做的只是表单验证。但我需要验证按钮是否按下,并更新表单小部件的onchanged,而不是文本字段。不验证文本字段,只验证按钮是否按下,并更新表单小部件的onChange函数。我是个新手。问题很简单,我在表单小部件(参考代码)中使用Flatbuttons,而不是textformfileds/textfields。表单小部件具有onchange函数。如果按下表单小部件内的任何按钮,我如何使用onchange函数?您希望在onchange函数中更改什么?导航到新页面。onchange是表单小部件的回调函数,因此每当小部件在表单小部件子树内更改其状态时,都会调用它,因此,它不能以这种方式使用,相反,您应该在FlatButton Widget的onPressed回调中使用它。您可以建议我任何方法来检测按钮组中的更改,并能够路由到新屏幕。我不想在每个onpressed中运行验证函数