Я пытаюсь установить одно логическое значение false через 2 секунды (showSpinner), но не могу с этим справиться, основная идея - показать загрузку счетчика в течение 2 секунд после отображения решения, но счетчик никогда не останавливается и решение никогда не появляется (счетчик загрузка счетчика, текст = решение)
@override
void initState(){
super.initState();
showSpinner=true;
Timer(Duration(seconds: 2),(){
setState(() {
showSpinner=false;
});
});
}
Widget build(BuildContext context) {
Widget child;
if (showSpinner == true && isPressed4 == true) {
setState(() {
Timer(Duration(seconds: 2), () {
showSpinner == false;
});
});
child = spinkit;
}
if (showSpinner == false && isPressed4 == true) {
text = simpleInterest.accumulationFunction(
time, yearlySimpleInterestRate, principal);
child = Text(
text,
style: TextStyle(fontSize: 18),
textAlign: TextAlign.center,
);
}
есть 3 кнопки (isPressed1 для кнопки 1 и isPressed2 для button2 и isPressd3 для кнопки 3, если все true isPressed4 становится истинным )
var floatingActionButton1 = FloatingActionButton(
onPressed: () {
setState(() {
isPressed1 = !isPressed1;
});
setState(() {
principal = double.parse(_principalController.text);
});
setState(() {
if (isPressed3 == true && isPressed2 == true && isPressed1 == true) {
isPressed4 = true;
}
});
},
elevation: 40,
backgroundColor: isPressed1 ? Colors.lightGreenAccent : null,
heroTag: "btn1",
child: Icon(Icons.check),
);