Quantcast
Channel: Active questions tagged listview - Stack Overflow
Viewing all articles
Browse latest Browse all 790

How to overwrite a global variable's value by declaring it inside a listview

$
0
0

This is for a stopwatch functionality. The xCountUpDuration is the default time for the stopwatch and I have set it in 2 places, one is outside listview (Code 1) and the value is set to 0 and the other is inside listview (Code 3) and the value is set to 10 minutes. The problem is when I call the (Code 2) widget inside listview of (Code 3), the value is set to 0 instead of 10 minutes. How can I make it use the xCountUpDuration value set in Code 3.

Code 1

  Duration xCountUpDuration = Duration();  Timer? xCountUpTime;  void xCountUpActionStart() {    xCountUpActionEnd();    xCountUpTime = Timer.periodic(Duration(seconds: 1), (_) => xCountUpActionAddTime());  }  void xCountUpActionEnd() {    setState(() => xCountUpTime?.cancel());  }  void xCountUpActionAddTime() {    final xAddSeconds = 1;    setState(() {      final seconds = xCountUpDuration.inSeconds + xAddSeconds;      xCountUpDuration = Duration(seconds: seconds);    });  }

Code 2

  Widget xCountUpTimerWidget() {    String xDigitConverter(int n) => n.toString().padLeft(2, '0');    final xHours = xDigitConverter(xCountUpDuration.inHours);    final xMinutes = xDigitConverter(xCountUpDuration.inMinutes.remainder(60));    final xSeconds = xDigitConverter(xCountUpDuration.inSeconds.remainder(60));    return Text('$xHours:$xMinutes:$xSeconds',      style: TextStyle(        fontSize: 60,        fontWeight: FontWeight.w700,      ),    );  }

Code 3

return ListView.builder(  itemBuilder: (context, index) {    Duration xCountUpDuration = Duration(hours: 00, minutes: 10, seconds: 00);    return Column(      children: [        xCountUpTimerWidget(),      ]    )  }

Viewing all articles
Browse latest Browse all 790

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>