Flutter 中的 PageStorage - 它是如何工作的?
PageStorage in Flutter - how does it work?
我在文档中看到了 PageStorage。据我了解,它几乎就像 Android 世界的共享偏好替代方案。
我如何使用它,为什么它的实现需要一个小部件?
我不确定 class 的 PageStorage 是做什么用的,但根据您的笔记,听起来您正在寻找键值存储。
文件中有一个关于为这样的插件提供好的插件的错误:
https://github.com/flutter/flutter/issues/4757
PageStorage 用于跟踪可能并不总是被实例化的小部件的状态,例如并行列表视图在可分页视图中的位置(比如当您有多个选项卡时,每个选项卡都有自己的列表)。对于像 sharedpreference 这样的东西,你可能应该使用 sharedpreference 本身(通过插件)。另见 https://github.com/flutter/flutter/issues/4757 or https://github.com/flutter/flutter/issues/3427。
下面是简单的例子:
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');
}
我在文档中看到了 PageStorage。据我了解,它几乎就像 Android 世界的共享偏好替代方案。
我如何使用它,为什么它的实现需要一个小部件?
我不确定 class 的 PageStorage 是做什么用的,但根据您的笔记,听起来您正在寻找键值存储。
文件中有一个关于为这样的插件提供好的插件的错误: https://github.com/flutter/flutter/issues/4757
PageStorage 用于跟踪可能并不总是被实例化的小部件的状态,例如并行列表视图在可分页视图中的位置(比如当您有多个选项卡时,每个选项卡都有自己的列表)。对于像 sharedpreference 这样的东西,你可能应该使用 sharedpreference 本身(通过插件)。另见 https://github.com/flutter/flutter/issues/4757 or https://github.com/flutter/flutter/issues/3427。
下面是简单的例子:
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');
}