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

Mil*_*lie 2 visible dart flutter

我有一个基本的登录页面,其中包含一个“电子邮件”、“密码”和一个“SwitchListTile”(开关),用户可以选择这些页面来确认阅读法律文件。在“登录”时,我希望显示“文本”。默认是不可见的。

我使用“可见性”类实现了文本的可见性。现在我想使用“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
            }
          },
        ),
Run Code Online (Sandbox Code Playgroud)

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

Dev*_*ard 5

在颤振中做到这一点的唯一方法是创建一个变量

var tcVisibility = false
Run Code Online (Sandbox Code Playgroud)

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

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

然后在代码中更新变量

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

答案更新