この Flutter iOS スタイルのストップウォッチがあり、画面を切り替えている間もストップウォッチを実行し続けたいと思います。
ストップウォッチの initState 関数内に配置された setState をいくつか試してみましたが、うまくいきませんでした。
ストップウォッチ画面に戻ったときにウィジェットが再構築されていないと思います。
//home_screen.dart ファイル内のビルダー
@override
Widget build(BuildContext context) {
return CupertinoTabScaffold(
controller: controller,
tabBar: CupertinoTabBar(
items: [
BottomNavigationBarItem(
icon: Icon(
Ionicons.getIconData('ios-globe'),
),
title: Text('World Clock'),
),
BottomNavigationBarItem(
icon: Icon(
Ionicons.getIconData('ios-alarm'),
),
title: Text('Alarm'),
),
BottomNavigationBarItem(
icon: Icon(
Ionicons.getIconData('ios-bed'),
),
title: Text('Bedtime'),
),
BottomNavigationBarItem(
icon: Icon(
Ionicons.getIconData('ios-stopwatch'),
),
title: Text('Stopwatch'),
),
BottomNavigationBarItem(
icon: Icon(
Ionicons.getIconData('ios-timer'),
),
title: Text('Timer'),
),
],
),
tabBuilder: (context, i) {
if(i == 3){
final Dependencies dependencies = new Dependencies();
return StopWatch(dependencies: dependencies,);
}else{
return CupertinoTabView(
builder: (context){
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text(chooseMiddle(i)),
),
child: Center(
child: Text('Screen $i'),
),
);
},
);
}
},
);
}