我有一个ViewPager(扩展FragmentPagerAdapter),它包含两个片段.我需要的是当我在它们之间滑动时为每个片段刷新ListView.为此,我实现了ViewPager.OnPageChangeListener接口(即onPageScrollStateChanged).为了保存对Fragments的引用,我使用了HashTable.我在getItem()方法中存储对HashTable中的Fragments的引用:

@Override

public Fragment getItem(int num) {

if (num == 0) {

Fragment itemsListFragment = new ItemsListFragment();

mPageReferenceMap.put(num,itemsListFragment);

return itemsListFragment;

} else {

Fragment favsListFragment = new ItemsFavsListFragment();

mPageReferenceMap.put(num,favsListFragment);

return favsListFragment;

}

}

因此,当我从一个片段滑动到另一个片段时,onPageScrollStateChanged触发我使用HashTable在两个片段中调用所需方法(刷新):

public void refreshList() {

((ItemsListFragment) mPageReferenceMap.get(0)).refresh();

((ItemsFavsListFragment) mPageReferenceMap.get(1)).refresh();

}

一切顺利,直到方向改变事件发生.之后是refresh()方法中的代码,它是:

public void refresh() {

mAdapter.changeCursor(mDbHelper.getAll());

getListView().setItemChecked(-1,true); // The last row from a exception trace finishes here (my class).

}

导致IllegalStateException:

java.lang.IllegalStateException: Content view not yet created

at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328)

at android.support.v4.app.ListFragment.getListView(ListFragment.java:222)

at ebeletskiy.gmail.com.passwords.ui.ItemsFavsListFragment.refresh(ItemsFavsListFragment.java:17)

假设确实没有创建Content视图,我将onActivityCreated()方法中的boolean变量设置为true,并使用if / else条件来调用getListView(),这显示了成功创建的活动和内容视图.

然后我正在调试以查看FragmentPagerAdapter何时调用getItem(),并且在方向更改事件之后不会调用该方法.所以看起来ViewPager持有对旧片段的引用.这只是我的假设.

那么,有没有办法强制ViewPager再次调用getItem(),所以我可以使用对当前片段的正确引用?可能是其他一些解决方案?非常感谢你.

android fragmentpageradapter切换不更新,android – FragmentPagerAdapter不会在方向更改时重新创建片段吗?...相关推荐

  1. android fragmentpageradapter切换不更新,关于android:在FragmentPagerAdapter中更新当前片段...

    我有一个带有标签指示器的viewPager. ViewPager是带有FragmentPagerAdapter的setAdaper. 我对FragmentPagerAdapter的内部工作原理了解甚少 ...

  2. android调服务不更新,android – OnUpdate()不调用小部件服务

    我正在为我的应用程序开发一个小部件.窗口小部件名称是历史记录,当用户浏览任何URL时,我将其存储在本地数据库中,从中列出该窗口小部件. 当我打开小部件时,它从本地数据库中获取所有细节并在小部件的列表视 ...

  3. android通知栏应用程序更新,Android App自动更新之通知栏下载

    本文实例为大家分享了Android App自动更新通知栏下载的具体代码,供大家参考,具体内容如下 版本更新说明 这里有调用UpdateService启动服务检查下载安装包等 1. 文件下载,下完后写入 ...

  4. android无缝切换播放器,Android使用MediaPlayer和TextureView实现视频无缝切换

    需求描述 比如广告播放,每个视频15秒,视频之间切换的时候,性能不太好的机器可能会黑屏一段时间,体验不太好,接下来我们就是要解决这个黑屏问题. 解决方案 使用两个surfaceView方式,经过测试不 ...

  5. android 界面切换监听,Android切换页面--setContentView

    setContentView 一般切换页面,通过Intent,startActivity可以实现,但系统创建Activity是非常耗时的,如果对切换画面时间有要求,只能用setContentView在 ...

  6. android 系统语言切换,Android系统切换语言更新应用界面方法

    最近做的一个升级应用,在下载升级包的过程中又有一个toast类型的dialog悬浮在屏幕右上角,这个时候切换系统语言会出现问题. 当主屏幕为升级应用时,切换系统语言升级应用重启,而重启后并不能自动断点 ...

  7. android studio gradle 自动更新,android studio gradle 两种更新方法更新

    又快一年没有使用AS了,正好要查看一个Android项目代码,干脆升级到新版试试看新变化,旧版本为3.1.2,目前最新版本为3.4.2,AS的升级是很简单的直接update等待即可. 升级完了,打开G ...

  8. android无缝切换播放器,android 视频 无缝切换 无缝播放 surfaceview

    android 视频 无缝切换 无缝播放 surfaceview 最近做一个app,其中有一个控件要不断的播放视频,切换视频,然后遇到每次切换视频都会黑屏一会. baidu,google没有找到有效的 ...

  9. android自动切换暗色,超实用!Android 深色模式适配(可定时开启的APP内主题切换管理工具)...

    前言 前面分享了一篇"黑白化主题"的文,主要适用场景是不久就要到来的"清明"等时节或者是其他的国家公祭日什么的(一名成熟的程序员,要学会自己提产品需求). 今天 ...

最新文章

  1. ASP.NET MVC:Cookie 的过期时间在服务器端是获取不到的
  2. python怎么实现检验_[python skill]利用python实现假设性检验方法
  3. Duilib教程-非DUI控件
  4. Linux 命令之 userdel -- 用于删除给定的用户以及与用户相关的文件
  5. VueRouter基础知识记录1
  6. js-Tabs小案例
  7. Linux 任务控制的几个技巧( , [ctrl]-z, jobs, fg, bg, kill)
  8. JSLIU 的 wxWindows 入门
  9. 全志r16android sdk,全志 Allwinner R16 SoC 全套设计资料分享 原理图 PCB 数据手册 SDK...
  10. 数值分析第八章知识点总结——常微分方程数值解法
  11. [转帖][攻防测试工具]系统监控必备工具procexp和procmon
  12. pdf复制文字时对于回车的处理
  13. 渗透工具——Namp基础用法
  14. app客户端上传图片实现方式
  15. 基于Struts2和hibernate的WebSocket聊天室的实现教程五:聊天机制
  16. PP视频(PPTV聚力)web接口分析
  17. 轻量级网络——EfficientNet
  18. Spring-IOC与AOP是解决什么问题的?
  19. 圣诞快到了,用JavaScript画一个圣诞树
  20. 【Serverless】云函数微信小程序

热门文章

  1. 20.EC实战 笔记本电脑的休眠唤醒是如何实现的
  2. 基于AVR单片机的AT24C01-512eeprom读写程序
  3. [附源码]Python计算机毕业设计_旅游系统
  4. 【随手记】有趣的面试题 —三人三鬼过河
  5. Go实战--Design Patterns in Golang 之单利模式(Singleton)
  6. windows10修改用户名解决CDK闪退问题
  7. 如何深入理解PhalApi框架三层结构Api+Domain+Model模式
  8. 刷新-读书笔记2(4-7章)
  9. docker挂载mysql会失败_Docker Mysql 挂载 /var/lib/mysql 后无法启动
  10. Parameter index out of range (1 > number of parameters, which is 0)