问题
Android与Flutter混合开发,Android第二次进入相同的Flutter页面时,该Flutter页面和第一次进入一样并无刷新,还是老数据。
方案
针对上诉问题,建议进入的Flutter页面使用StatefulWidget组件,并重写didUpdateWidget()。
class FlutterPage extends StatefulWidget {
const FlutterPage({Key? key}) : super(key: key);
@override
_FlutterPageState createState() => _FlutterPageState();
}
class _FlutterPageState extends State<FlutterPage> {
@override
void didUpdateWidget(covariant FlutterPage oldWidget) {
super.didUpdateWidget(oldWidget);
// TODO: 执行刷新操作,比如setState(),请求数据,初始化布局
}
@override
Widget build(BuildContext context) {
return Container();
}
}
简单实现如上诉代码所写,在didUpdateWidget中执行刷新操作,可 setState(() {}),请求api,初始化view等。
开发中有时页面刷新无效,也可以重写一下didUpdateWidget(),不仅限于混合开发,纯Flutter开发中也可以试试,亲测有效。