在 FragmentStatePagerAdapter 中保存状态和恢复状态

2024-06-28

我正在使用ViewPager with FragmentStatePageAdapter我的屏幕上有 5 个页面,其中有大量图像和视图。目前我有mViewPager.setOffscreenPageLimit(1);所以只有当前、上一个和下一个会在内存中,其他 2 个将被销毁。但对于那些被破坏的碎片我想利用saveState() and restoreState()适配器保持其状态,因此当我返回该屏幕时,它无论如何都会转到onCreateView()该片段的内容也将保持状态。

Having mViewPager.setOffscreenPageLimit(4);不是一个好的选择,因为它有内存问题。

我搜索了很多,但没有得到任何使用这两个函数来维护和恢复状态的示例。

有人可以帮我继续吗?


无需覆盖saveState() and restoreState()的方法FragmentStatePagerAdapter.

主要是因为它是核心FragmentStatePagerAdapter已经为您完成的实施。这FragmentManager您传递给构造函数的参数负责恢复先前实例化的片段。实际上,instantiateItem()的回调FragmentStatePagerAdapter确保它返回片段及其保存的状态。

话虽如此,只需覆盖onSaveInstanceState()方法你的片段并将你想要恢复的所有内容放入Bundle outState.

您放置在捆绑包中的数据将在提供给的捆绑包中可用onCreate(Bundle), onCreateView(LayoutInflater, ViewGroup, Bundle), and onActivityCreated(Bundle)方法。

现在你可以争论了:

“但我已经尝试过以这种方式保存碎片的状态。 这对我不起作用!”

如果您发现自己处于这种情况,请检查如何初始化片段的状态变量。您可能从 Bundle 中获得了所需的内容,但随后从您获得的值中覆盖了它getArguments()片段的方法。 (这正是我的挣扎,如果您使用工厂方法来实例化片段,可能也是您的情况)。

另外,把你的FragmentStatePagerAdapter in the onCreate活动的方法(而不是进入onStart).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 FragmentStatePagerAdapter 中保存状态和恢复状态 的相关文章

  • 从 Eclipse 启动时创建新的 JFrame 时 Java 将关闭。没有抛出异常

    我正在开发一个在 Eclipse 中开发的 Java 项目 直到今天一切都很好 昨天 在完成我的项目之前 我最后一次运行它以检查一切是否正常并且运行正常 但是今天 当我启动该项目并按下 运行 时 我的应用程序就神秘地关闭了 没有崩溃 没有消
  • C++ 中的 golang 风格“延迟”[重复]

    这个问题在这里已经有答案了 我正在阅读有关 go 语言的defer http blog golang org defer panic and recover陈述 它允许您指定函数结束时要执行的操作 例如 如果您有一个文件指针或资源 则只需指
  • Android:“无法初始化可视化引擎”

    我三天前开始为 Android 编程 今天我想使用 android Api 中的一些类来做一些更困难的事情 我找到了 Visualizer 类 第一次尝试时遇到了问题 我在不同论坛上读到很多帖子 人们有同样的问题 无法初始化可视化引擎 我将
  • Java 8 哈希映射无法正常工作

    自 java 8 以来 我们面临着 HashMap 行为方式的奇怪问题 当HashMap的键实现了Comparable接口 但compareTo的实现与equals不一致时 HashMaps 长得比它们应该长的大得多 它们包含多个相同元素的
  • Node.js 和 npm phoenix-client 包与 Kerberized Apache phoenix 的连接

    我正在尝试将 Kerberized Apache phoenix 与 node js 上的 npm jdbc 包连接起来 kerberized apache phoenix 的 node js 和 npm jdbc 包问题 https st
  • 是否可以在 AlertDialog 中自定义正向和负向按钮?

    是否可以在 AlertDialog 中自定义正向和负向按钮 我需要用自定义替换默认的正面和负面外观 setPositiveButton android R string ok new DialogInterface OnClickListe
  • React Native - 图像缓存

    我阅读了该站点中有关 React Native 图像组件的文档并得到了一些问题 https facebook github io react native docs image html https facebook github io r
  • Dash ImportError:无法从“werkzeug.debug.tbtools”导入名称“get_current_traceback”

    我正在尝试在 Pycharm 的 conda 环境中运行一个简单的破折号应用程序 但是我遇到了标题中的错误 奇怪的是 我在互联网上找不到提到这个错误的地方 除了here https community plotly com t dash w
  • JQuery 循环遍历动态元素并获取数据值

    我正在尝试使用可折叠面板来完成我的要求 sport on click function var thisId this attr id var thisChildren this sportlist thisChildren each fu
  • 是否可以暂时禁用 Postgres 中的索引?

    我在一张表上有一个索引 我想暂时禁用它 但我找不到任何表明这是可能的文档 原因 我有一个索引 它可能会导致与它旨在加速的任何查询无关的查询问题 这是一个新的索引 自从引入以来 整个系统似乎速度较慢 我只是希望能够可靠地消除它作为罪魁祸首 这
  • 如何水平和垂直对齐内联块

    什么是最好 最干净的使用CSS对齐 dates div位于标题的右侧 垂直于中间 I tried float right 但这不允许vertical align 我想避免使用浮动 所以我使用inline block 并使用相对定位 有没有更
  • 将用户控件绑定到 bool 属性的相反值

    非常简单 我想做同样的事情this https stackoverflow com questions 534575 how do i invert booleantovisibilityconverter但在winforms中 谷歌似乎提
  • 如何防止外部 CSS 添加和覆盖 ReactJS 组件样式

    我有一个自定义的 ReactJS 组件 我想以某种方式设置样式 并将其作为插件提供给许多不同的网站 但是 当网站使用全局样式 Twitter bootstrap 或其他 css 框架 时 它会添加并覆盖我的组件的样式 例如 全局 css l
  • 针对字段的 Elasticsearch 匹配列表

    我有一个列表 数组或任何你熟悉的语言 例如 姓名 John Bas Peter 我想查询name字段 如果它与这些名称之一匹配 一种方法是使用 OR 过滤器 例如 filtered query match all filter or ter
  • OSX 的网络连接 NSNotification?

    我只需要在分配有效 IP 地址时发出通知即可 我尝试过通过 SCreachability 进行轮询 但这似乎效率低下 有什么建议么 这看起来应该很简单 但我已经努力了几个小时才能让任何东西发挥作用 我知道这有点旧 但所选的答案并不理想 SC
  • 如何将 JSLint 用于依赖于 JQuery 的代码段?

    我对 Javascript 比较陌生 我想通过 JSLint 运行我周末玩的那段代码 这样它就可以指出我在哪里是个十足的白痴 不幸的是 我收到了大量关于缺少函数声明的错误 这些函数声明是 JQuery javascript 库及其各种插件的
  • 定义应保存 user.config 文件的自定义路径?

    如果我重命名我编译的应用程序 例如myapp exe to app exe然后 当我运行重命名的可执行文件时 会在此路径中生成新的用户设置文件夹 C Users User AppData Local CompanyName Executab
  • 表格单元格中 ::after 上的位置在 Firefox 中不起作用?

    以下代码应创建一个跨越其父元素宽度 100 的伪元素 然而 这在 Firefox 中不起作用 但在 Chrome 中却有效 火狐浏览器似乎忽略了 parent s position relative 这是一个错误吗 HTML div cla
  • 如何使相对div居中?

    我一直在尝试让以下代码工作几个小时 但没有成功 您能帮我将项目 div 居中吗 即使页面放大和缩小时 这是我的 HTML 和 CSS bottom position absolute top 100 left 0 right 0 backg
  • 将多个ggplot2图保存为列表中的R对象并在网格中重新显示

    我想在大型 for 循环期间将多个绘图 使用 ggplot2 保存到列表中 然后随后在网格中显示图像 使用 grid arrange 我已经尝试了两种解决方案 1 将其存储在列表中 如下所示 pltlist qplot lt qplot 然

随机推荐

  • 使用 Choco 建模网球比赛 (CSP)

    我正在尝试用 Choco 建模一个问题 以获得网球赛事 或任何运动 中可能的比赛组合 我尝试这样做的方式如下 Set of timeslots when the event is held i e 10am 10pm int nTimesl
  • 将 XML 文件导入 SQL Server(不使用 BULK)

    我正在尝试将数据从 XML 文件导入到数据库中 我使用了一个测试脚本BULK INSERT 但是当我在实时数据库上进行测试时 权限BULK被禁用 尝试 1 BULK INSERT XMLTable FROM C Radu test xml
  • 使用 dplyr::mutate 重新编码而不在函数中工作

    我正在尝试使用dplyr mutate across 重新编码 a 中的指定列tbl 单独使用它们效果很好 但我无法让它们在函数中工作 library dplyr library tidyr df1 lt tibble Q7 1 1 5 Q
  • elasticsearch,是否可以更新嵌套对象而不更新整个文档?

    我正在使用嵌套对象索引一组文档 将它们想象为论坛帖子 该嵌套对象是与该帖子相关的用户 我的问题是用户字段可能会更新 但由于帖子没有更改 因此它们不会重新索引 并且用户嵌套对象变得过时 有没有办法更新嵌套对象而无需再次重新索引整个文档 或者唯
  • 在android中将SQLite数据库导出到csv文件

    我正在尝试将 SQLite 数据作为目录中的 CSV 文件导出到 Android 中的 SD 卡 所以我尝试了下面的方法 显然它只显示打印出来的文本 数据库的第一个表日期 项目 金额 货币 在我的 DBHelper java 中 我定义了该
  • VTD-XML 似乎破坏了 XML 文档中的转义字符串

    我正在研究 XML 数据集 DrugBank 数据库可用 here http www drugbank ca downloads 其中某些字段包含转义的 XML 字符 例如 等 为了使问题更加具体 下面是一个示例场景
  • 取消 flatMap 可观察调用链

    我正在使用 Angular 5 和 rxjs 我正在拨打 2 次服务电话 其中一次取决于其他结果 我正在使用 flatMap 进行此操作 我还使用 takeUntil 以便我可以在任何给定点中止操作 我的代码如下所示 this myserv
  • 使用 clang-format 删除尾随空格

    正如标题所示 我试图使用 clang format 来删除文件的尾随空格 但我找不到相关的选项名称 有人能指出我显而易见的事情吗 clang format 会自动删除尾随空格 您可以通过例如测试这一点clang format style G
  • 支持 Hexagon Maps for .NET 的开源 2D 游戏引擎

    我找不到 2D 游戏引擎来为 net 创建六边形地图 我能找到的最好的是 Xconq http sourceforge net projects xconq http sourceforge net projects xconq 和pyga
  • “django.core.exceptions.ValidationError”错误

    我正在 Django 中编写一个简单的游戏 所有的事情都是正确的 但是突然 我遇到了以下错误 Django v 1 7 Python v 3 4 我不知道这些代码有什么问题 test alireza alireza test test1 p
  • 关于并发修改异常[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 您能否告诉我 是否有任何方法可以在单
  • 由于 Google Analytics,PageSpeed Insights 99/100 - 如何缓存 GA?

    我正在努力使 PageSpeed 达到 100 100 而且我已经快到了 我正在尝试找到一个好的解决方案来缓存 Google Analytics 这是我收到的消息 利用浏览器缓存 在静态资源的 HTTP 标头中设置到期日期或最长期限会指示浏
  • 信标已注册,但响应表明 UID 错误

    我使用成功注册了一个信标谷歌邻近API https developers google com beacons proximity guides hl en但响应指示不同的 UID 请求网址https proximitybeacon goo
  • “foreach”并行循环返回 s

    我正在尝试并行处理多个列表项 我的目标是 根据每列的值运行一些标签函数 然后返回带有节点名称 列名称和处理后的标签的数据帧 使用普通的 for 循环 工作流程可以正常工作 但是 当我尝试在 foreach 循环中执行相同的操作时 返回的结果
  • 对于 Haskell 的 QuickCheck,什么是收缩?

    我正在学习 QuickCheck gt 2 6 的诀窍 但我不明白什么是心理医生 从看类型签名 http hackage haskell org packages archive QuickCheck 2 6 doc html Test Q
  • 如何在java中将方法调用作为后台进程

    在我的应用程序中 当用户登录时 我有这个逻辑 它将调用以下方法 并使用用户拥有的所有符号 public void sendSymbol String commaDelimitedSymbols try further logic catch
  • 将 Seq 与 Range 进行模式匹配

    考虑一段代码 def foo xs Seq Int xs match case Nil gt empty list case head Nil gt one element list case head tail gt s head is
  • 点 -> 像素 iText (im)精度

    好的 这是一些代码 pdfDocument is a com itextpdf text Document PdfPTable table new PdfPTable 1 PdfPCell cell new PdfPCell cell se
  • 库存推文、文本挖掘、表情符号错误

    我希望您能够协助进行文本挖掘练习 我对 AAPL 推文感兴趣 并且能够从 API 中提取 500 条推文 我自己克服了几个障碍 但最后一部分需要帮助 由于某种原因 tm 包没有删除停用词 您能看一下可能是什么问题吗 表情符号会引起问题吗 绘
  • 在 FragmentStatePagerAdapter 中保存状态和恢复状态

    我正在使用ViewPager with FragmentStatePageAdapter我的屏幕上有 5 个页面 其中有大量图像和视图 目前我有mViewPager setOffscreenPageLimit 1 所以只有当前 上一个和下一