У вас проблема с областью, так как вы создаете экземпляр переменной check
в функции внутри обратного вызова Timer
, и она не будет доступна за пределами этой области.
Вы также можете иметь эту переменная, объявленная в вашем классе и доступ к ней, когда вам это нужно, например:
в классе
bool check;
int details;
GestureDetector(
onTap: () {
Timer(Duration(seconds: 10), () {
setState((){
check = true;
details = -10;
});
});
}
)
Или, если вам не нужна проверка переменная вне этой области, вы можете просто полностью удалить ее:
В классе:
int details;
В виджете:
GestureDetector(
onTap: () {
Timer(Duration(seconds: 10), () {
setState((){
details = -10;
});
});
}
)
Я добавил setState
s в обоих примерах, так как кажется, что вы будете обновлять свое представление этими значениями, и оно не будет работать без setState
.