我在文档中看到了 PageStorage。据我了解,它几乎就像来自 Android 世界的共享偏好替代方案。
我如何使用它,为什么它的实现需要一个小部件?
PageStorage 用于跟踪可能并不总是实例化的小部件的状态,例如可分页视图中并行列表视图的位置(例如当您有多个选项卡时,每个选项卡都有自己的列表)。对于 sharedpreference 之类的东西,您可能应该使用 sharedpreference 本身(通过插件)。另请参阅https://github.com/flutter/flutter/issues/4757或https://github.com/flutter/flutter/issues/3427。
我不确定该类的 PageStorage 用途是什么,但根据您的笔记,听起来您正在寻找键值存储。
关于为此类提供一个不错的插件的文件中有一个错误: https ://github.com/flutter/flutter/issues/4757
下面是一个简单的例子:
home.dart
final pageStorageBucket = PageStorageBucket();
@override
Widget build(BuildContext context) {
return PageStorage(
bucket: pageStorageBuket,
child: Scaffold(
...
),
);
}
child.dart
int storedValue;
@override initState() {
super.initState();
storedValue = PageStorage.of(context).readState(context, identifier: 'value');
}
void storeValue(int value) {
PageStorage.of(context).writeState(context, value, identifier: 'value');
}