สร้าง widget ตัวนึงขึ้นมาตามนี้
class RestartWidget extends StatefulWidget {
RestartWidget({this.child});
final Widget child;
static void restartApp(BuildContext context) {
context.findAncestorStateOfType<_RestartWidgetState>().restartApp();
}
@override
_RestartWidgetState createState() => _RestartWidgetState();
}
class _RestartWidgetState extends State<RestartWidget> {
Key key = UniqueKey();
void restartApp() {
setState(() {
key = UniqueKey();
});
}
@override
Widget build(BuildContext context) {
return KeyedSubtree(
key: key,
child: widget.child,
);
}
}
เอามาครอบตอนรัน แบบนี้
void main() {
runApp(
RestartWidget(
child: MaterialApp(),
),
);
}
ถ้าอยากจะนำไปใช้ตรงไหน ก็สั่งรันโค้ดนี้ได้เลย
RestartWidget.restartApp(context);