Flutter保持页面状态AutomaticKeepAliveClientMixin
2024-09-18 21:29:57
使用bottomNavigationBar切换底部tab,再切换回来就会丢失之前的状态(重新渲染列表,丢失滚动条位置)。
解决方法
使用 AutomaticKeepAliveClientMixin
重写 bool get wantKeepAlive => true;
build方法中调用super.build(context);
class _MovieListState extends State<MovieList> with AutomaticKeepAliveClientMixin {
List movieList = new List();
@override
bool get wantKeepAlive => true;
@override
Widget build(BuildContext context) {
super.build(context);
return ListView.builder(
itemCount: movieList.length,
itemBuilder: (context, index) {
return MovieItem(
item: movieList[index],
);
},
);
}
}
达到保存列表状态的效果
引用自官网的说明:
Subclasses must implement wantKeepAlive, and their build methods must call
super.build
(the return value will always return null, and should be ignored).Then, whenever wantKeepAlive's value changes (or might change), the subclass should call updateKeepAlive.
The type argument
T
is the type of the StatefulWidget subclass of the State into which this class is being mixed.
参考链接:
最新文章
- 正则表达式之JSP、Android
- SSH框架 sequence diagram
- Windows 和 Linux 下 禁止ping的方法
- GenericRepository
- UTF-8编码规则
- Chapter 10 EF 6 Support
- 尝试一下用MARKDOWN嵌入代码
- 今天愉快的hack小记
- C语言基础文件读写操作
- SVN 版本控制工具
- 【Windows 10 应用开发】输入模拟
- spring BeanWrapperImpl方便的嵌套属性(list)操作
- Python中的序列操作
- css滚动条样式自定义
- 二、Oracle 数据库基本操作
- python描述器
- ES标准
- tomcat内存溢出设置JAVA_OPTS
- Eureka 高可用
- WP8.1学习系列(第十二章)——全景控件Panorama开发指南