13

我在文档中看到了 PageStorage。据我了解,它几乎就像来自 Android 世界的共享偏好替代方案。

我如何使用它,为什么它的实现需要一个小部件?

4

3 回答 3

9

PageStorage 用于跟踪可能并不总是实例化的小部件的状态,例如可分页视图中并行列表视图的位置(例如当您有多个选项卡时,每个选项卡都有自己的列表)。对于 sharedpreference 之类的东西,您可能应该使用 sharedpreference 本身(通过插件)。另请参阅https://github.com/flutter/flutter/issues/4757https://github.com/flutter/flutter/issues/3427

于 2017-03-03T22:03:35.900 回答
1

我不确定该类的 PageStorage 用途是什么,但根据您的笔记,听起来您正在寻找键值存储。

关于为此类提供一个不错的插件的文件中有一个错误: https ://github.com/flutter/flutter/issues/4757

于 2017-03-03T21:43:31.653 回答
1

下面是一个简单的例子:

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');
}
于 2020-10-22T07:23:09.267 回答