#dart #flutter #visible
#dart #трепетание #видимый
Вопрос:
У меня есть базовая страница входа, которая состоит из «электронной почты», «пароля» и «SwitchListTile» (переключатель), который пользователи будут выбирать для подтверждения чтения юридических документов. При «Входе» я бы хотел, чтобы отображался «Текст». По умолчанию он невидим.
Я реализовал видимость текста, используя класс ‘Visibility’. Теперь я хотел бы сделать его видимым с помощью проверки «if-else».
SwitchListTile(
value: _acceptTerms,
onChanged: (bool value) {
setState(() {
_acceptTerms = value;
});
},
title: Text('Accept Tamp;Cs'),
),
SizedBox(height: 5.0),
Visibility(
visible: false,
child: Text(
'Please accept Terms amp; 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:
Единственный способ сделать это во flutter — создать переменную
var tcVisibility = false
установите видимость текстового поля в переменную
Visibility(
visible: tcVisibility,
child: Text(
'Please accept Terms amp; Conditions!',
style: TextStyle(color: Colors.red),
)),
затем в коде обновите переменную
if(_acceptTerms) {
Navigator.pushReplacementNamed(context, '/products');
} else {
setState(() {
tcVisibility = true;
});
}
Ответ обновлен
Комментарии:
1. Вместо
tcVisibility = false;
, это должно бытьtcVisibility = true;
в предложении else.