在 Flutter 中使用 InheritedWidget 时 ListView 失去滚动位置

Posted

技术标签:

【中文标题】在 Flutter 中使用 InheritedWidget 时 ListView 失去滚动位置【英文标题】:ListView loses scroll position when using InheritedWidget in Flutter 【发布时间】:2019-09-17 17:58:11 【问题描述】:

将 InheritedWidget 添加到应用程序后,当我使用 Pop() 从详细信息屏幕返回列表时,我发现 ListView 失去了滚动位置(所选项目索引)。

我知道小部件可以随时重建,但也许有人可以在不手动处理缓存的情况下提出解决方案。

附: 在实现 InheritedWidget 之前滚动位置很好

【问题讨论】:

我们缺乏信息。也许插入一些代码来帮助我们重现错误 在这种情况下的问题是在 ListView 中为某些小部件实现 GlobalKey 的方式错误。所以这不是 InheritedWidget 的问题 【参考方案1】:

没有任何代码,所以在黑暗中开枪

尝试添加“密钥” 像这样

ListView(
   key: const PageStorageKey<String>('some unique text'),
   //other parameters
);

【讨论】:

以上是关于在 Flutter 中使用 InheritedWidget 时 ListView 失去滚动位置的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter Web 中使用 Flutter 移动包

如何使用 flutter_webview 插件在 Flutter 中启用位置?

在flutter中使用Chopper网络库和flutter_bloc库

Flutter : 在 Flutter web 中使用 Froala-editor

如何在flutter中使用flutter_webview_plugin和AndroidX

在 Flutter 中使用 webview_flutter 4.0 | 基础用法与事件处理