单击按钮后可以看到文本小部件

问题描述 投票:1回答:1

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

我使用'Visibility'类实现了Text的可见性。现在我想使用'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开发的新手。谢谢。

dart flutter visible
1个回答
4
投票

在flutter中执行此操作的唯一方法是创建变量

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;
    });
}

答案已更新

© www.soinside.com 2019 - 2024. All rights reserved.