#flutter #dart
#флаттер #дротик
Вопрос:
Я использую кнопку, которая отображает приглашение на панели закусок. Прямо сейчас, если я быстро нажму кнопку, скажем, 50 раз, панель закусок появится на несколько секунд, затем еще раз, и еще раз, пока она не будет показана 50 раз. Как я могу предотвратить это?
Вот мой код-
actions: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: RaisedButton(
elevation: 7,
color: Colors.black26,
child: Text('Button'),
onPressed: () {
_scaffoldKey.currentState
.showSnackBar(SnackBar(content: Text("Welcome")));
},
),
),
],
Комментарии:
1. Вы пробовали применить к кнопке метод блока с таймером?
2. @fish-like-mammal Нет, я не пробовал. Можете ли вы опубликовать подробный ответ?
Ответ №1:
Ответ №2:
Существуют разные способы решения этой проблемы. Во-первых, вы можете легко предотвратить многократные нажатия на некоторое время.
bool _enabled = true;
onPressed: !_enabled
? null
: () {
setState(() => _enabled = false);
_scaffoldKey.currentState
.showSnackBar(SnackBar(content: Text("Welcome")));
// Enable it after 1s.
Timer(Duration(seconds: 1), () => setState(() => _enabled = true));
},
Комментарии:
1. Спасибо за простое решение! Хотя вы перепутали правду и ложь, вы должны отредактировать это.