单击按钮后使文本小部件可见

时间:2019-03-26 18:58:35

标签: dart flutter visible

我有一个基本的登录页面,其中包含一个“电子邮件”,“密码”和一个“ SwitchListTile”(Switch),用户将选择该页面来确认阅读法律文档。在“登录”上,我希望显示“文本”。默认设置为不可见。

我使用“可见性”类实现了文本的可见性。现在,我想使用“ if-else”检查使其可见。

        SwitchListTile(
          value: _acceptTerms,
          onChanged: (bool value) {
            setState(() {
              _acceptTerms = value;
            });
          },
          title: Text('Accept T&Cs'),
        ),
        SizedBox(height: 5.0),
        Visibility(
            visible: false,
            child: Text(
              'Please accept Terms & Conditions!',
              style: TextStyle(color: Colors.red),
            )),
        SizedBox(
          height: 10.0,
        ),
        RaisedButton(
          color: Theme.of(context).primaryColor,
          textColor: Colors.white,
          child: Text('LOGIN'),
          onPressed: () {
            print(_emailValue);
            print(_passwordValue);
            if(_acceptTerms) {
              Navigator.pushReplacementNamed(context, '/products');
            } else {
              //code to make invisible text visible
            }
          },
        ),

我还是Flutter和Dart开发的新手。谢谢。

1 个答案:

答案 0 :(得分:3)

唯一的方法是创建一个变量

var tcVisibility = false

将文本框的可见性设置为变量

Visibility(
     visible: tcVisibility,
     child: Text(
     'Please accept Terms & Conditions!',
     style: TextStyle(color: Colors.red),
)),

然后在代码中更新变量

if(_acceptTerms) {
     Navigator.pushReplacementNamed(context, '/products');
} else {
    setState(() {
         tcVisibility = true;
    });
}

答案更新