代码之家  ›  专栏  ›  技术社区  ›  Dani

Flutter:不要打开ExpansionTile

  •  0
  • Dani  · 技术社区  · 3 年前

    在打开此小部件之前,我需要为用户验证其他参数。因此,如果用户点击很快,我会显示一个SnackBar,上面写着“你忘了先做点什么”。

    我可以把孩子们包在这个小部件里 Visibility 小部件,但状态无论如何都是打开的。

    我能以某种方式验证这一点吗?

    0 回复  |  直到 3 年前
        1
  •  0
  •   Mukul    3 年前

    我认为您想在打开扩展图块之前验证一些字段。

    您可以使用 boolean 对于该变量,首先设置 bool 变量to false 在那之后 validate 你的 fields onExpansionChanged 方法和显示 toast .

    分配一个bool字段,当你的字段被验证后,再更改它 bool 字段到 true ,

    bool 字段be 错误的 默认情况下,然后使用它来隐藏扩展图块 childrens 如果 错误的 ,并显示 儿童 如果设置为 真的 .

      bool isValid = false;
    
    ExpansionTile(
                onExpansionChanged: (value){
                  if(isValid){
                    print(" ok");
                  }else{
                    print("Show a toast, Please check all Fields");
                  }
                },
                    title: Text(
                      'Title',
                    ),
                    children: <Widget>[
                      isValid ? ListTile(
                        title: Text('data'),
                      ) : new Container(),
                    ],
                  ),