在使用Get作为状态管理工具时,我的页面继承了GetView,在做首页时需要多个页面,但是继承了GetView的页面不能再继承AutomaticKeepAliveClientMixin,这就导致切换页面会refresh GetView.
我也不想将GetView改成StatefulWidget. 通过查阅get的issue,找到了这个解决方案
issue地址
import 'package:flutter/material.dart';
class KeepAliveWrapper extends StatefulWidget {
final Widget child;
const KeepAliveWrapper(this.child, {Key? key}) : super(key: key);
@override
_KeepAliveWrapperState createState() => _KeepAliveWrapperState();
}
class _KeepAliveWrapperState extends State<KeepAliveWrapper>
with AutomaticKeepAliveClientMixin {
@override
Widget build(BuildContext context) {
super.build(context);
return widget.child;
}
@override
bool get wantKeepAlive => true;
}