博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决ViewPager缓存导致不能实时刷新数据
阅读量:6938 次
发布时间:2019-06-27

本文共 971 字,大约阅读时间需要 3 分钟。

ViewPager+Fragment,但是Fragment有个不好或者太好的地方。例如你在ViewPager中添加了三个Fragment,当加载ViewPager中第一个Fragment时,它会默认帮你预先加载了第二个Fragment,当你加载第二个Fragment时,它会帮你加载第三个Fragment。

这样用户使用的体验是不错的,但是这样可能导致每次滑动切换页面时,显示的数据都不是最新的数据。而是ViewPager预加载从内存中读取的数据。

我们怎么去解决这种问题。及时的去刷新数据。

在fragment中有这样两个个方法 void setUserVisibleHint(boolean isVisibleToUser)、boolean getUserVisibleHint() 这两个方法分别是设置fragment可见状态和获取当前fragment可见

状态,取消预加载我们应该在这里面去进行设置。在BaseFrament中去写这样一段逻辑。

  

public
abstract
class
BaseFragment
extends
Fragment {
     
    
/** Fragment当前状态是否可见 */
    
protected
boolean
isVisible;
     
     
    
@Override
    
public
void
setUserVisibleHint(
boolean
isVisibleToUser) {
        
super
.setUserVisibleHint(isVisibleToUser);
         
        
if
(getUserVisibleHint()) {
            
isVisible =
true
;
            v
isible();
        
}
else
{
            
isVisible =
false
;
            i
nVisible();
        
}
    
}
     
     
    
/**
     
* 可见
     
*/
    
protected
void v
isible() {
        loadData
();    
    
}
  
 
    
/**
     
* 不可见
     
*/
    
protected
void i
nVisible() {
         
         
    
}
    
/**
     
* 延迟加载
     
* 子类必须重写此方法
     
*/
    
protected
abstract
void
loadData();
}

转载于:https://www.cnblogs.com/lyjsmile/p/7434694.html

你可能感兴趣的文章
规划System Center 2012 R2 Operations manager
查看>>
用 MapFileAndCheckSum 函数检测 exe 或 dll 是否被修改 - 回复 "Joe Lo" 的问题
查看>>
我的友情链接
查看>>
ORM for Net主流框架汇总与效率测试
查看>>
图片切换控件
查看>>
MYSQL 執行 BASH SCRIPT 出現 WARNING: USING A PASSWORD ON THE COMMAND LINE INTERFACE CAN BE INSECURE...
查看>>
解决php的It is not safe to rely on the system’s timezone settings的问题
查看>>
MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验...
查看>>
【学神-RHEL7】P2-Python流程控制
查看>>
启动或重启DNS服务时,卡在Generating /etc/rndc.key:上很长时间
查看>>
视频专辑:Python系列视频教程
查看>>
Linux内核更新 linux3.10.tar.gz Redhat 6.0
查看>>
IPv6技术详解:基本概念、应用现状、技术实践(下篇)
查看>>
zabbix自定义key监控mysql重要参数的运行情况
查看>>
CISCO 多协议,多进程,路由重分布及其路由策略应用
查看>>
ios开发备忘录十
查看>>
windows下 iis配置php5.6
查看>>
谷歌火狐浏览器保存网页为htm格式
查看>>
sqlserver表和库管理
查看>>
Ceph安装QEMU报错:User requested feature rados block device configure was not able to find it
查看>>