我有一个基本的登录页面,其中包含“电子邮件”,“密码”和“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开发的新手。谢谢。
在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;
});
}
答案已更新