0

I want to show a Text() widget in the first second of ConnectionState.waiting, but if it takes longer than a second, I want to show a different Widget with a custom Animation.

Simplified code (StatelessWidget):

...
Stream
...
if (snapshot.connectionState == ConnectionState.waiting) {
                    return Text('Loading data');
                    return CustomWidget(); <- Show this widget instead of Text if more than 1 sec
                  }
Marcel Dz
  • 2,321
  • 4
  • 14
  • 49

1 Answers1

2

I do not know if this is what you need.

First define a DateTime variable:

DateTime time = DateTime.now();

Then in your build method set with the current DateTime:

@override
  Widget build(BuildContext context) {
    time = DateTime.now();

Then in your result you can check the "time" variable with the current DateTime like this:

if (snapshot.connectionState == ConnectionState.waiting) {
  if (DateTime.now().difference(time).inSeconds>10){
    return Text("More than 10 seconds");
  }
  else {
    return Text('Less than 10 seconds');
  }
}
camillo777
  • 2,177
  • 1
  • 20
  • 20