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