viewPager删除缓存fragment
fragment结合viewpager会缓存fragment在内存,除非退出程序,想要不退出程序情况下刷新fragment页面,就要删除缓存;
public class MainActivity extends AppCompatActivity {
ViewPagerAdapter2 viewPagerAdapter2;
ViewPager viewPager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
s3 = 1;
viewPager = findViewById(R.id.viewPager);
viewPagerAdapter2 = new ViewPagerAdapter2(getSupportFragmentManager());
viewPager.setAdapter(viewPagerAdapter2);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("点击");
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
List<Fragment> fragments = getSupportFragmentManager().getFragments();
if (fragments != null) {
for (Fragment childFragment :fragments) {
transaction.remove(childFragment);
}
transaction.commit();
}
viewPagerAdapter2 = new ViewPagerAdapter2(getSupportFragmentManager());
viewPager.setAdapter(viewPagerAdapter2);
viewPagerAdapter2.notifyDataSetChanged();
}
});
}
}
public class ViewPagerAdapter2 extends FragmentPagerAdapter {
public ViewPagerAdapter2(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
System.out.println("输出item"+position);
switch(position) {
case 0:
return new BlankFragment();
case 1:
return new BlankFragment2();
}
return null;
}
@Override
public int getCount() {
return array.length;
}
@Override
public CharSequence getPageTitle(int position) {
return array[position];
}
public int getItemPosition(Object object) {
// TODO Auto-generated method stub
System.out.println("返回位置");
return PagerAdapter.POSITION_NONE;
}
}
viewPager删除缓存fragment的更多相关文章
- viewPager+fragment如何刷新缓存fragment
最近在做一个项目,有一个功能是答题翻页.于是需要实现在这一页的时候就缓存下一页. 刚刚开始我是用 setOnPageChangeListener方法监听,滑到这一页的时候才刷新这一页: public ...
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的,在此不表: Fragment从出现到广泛运用也有一段时间了,其标准生命周期也仅比Activity ...
- 防止ViewPager中的Fragment被销毁的方法,更加流畅
在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图: 当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是可以 ...
- 解决Fragment中使用ViewPager时,ViewPager里的Fragment错位和空白问题
这两天开始在改OSChina的开源android客户端,打算用Fragment来分离Main这个Activity里的功能.用Fragment嵌套ViewPager+Fragment的时候发现问题. 红 ...
- (转)防止ViewPager中的Fragment被销毁的方法
在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图: 当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是可以 ...
- ViewPager的缓存机制
1.实现Viewpager的页面懒加载: 在某些情况下,例如使用ViewPager查看多张大图,此时多张图片不能一次性载入,只有在浏览该页面时才载入(或者预先载入下一页面)页面的具体内容. 2.可控V ...
- 在Spring中使用Redis Lua脚本批量删除缓存
背景 之前分享了一篇利用lua脚本批量删除redis的key的文章.现在项目中我打算使用spring的缓存,而Spring缓存以前我是用ehcache来做实现的.没发现什么问题..这次我换成redis ...
- 防止ViewPager中的Fragment被销毁
pager.setOffscreenPageLimit(2); 就可以让ViewPager多缓存一个页面
- Redis批量删除缓存数据
背景: 在使用redis中,经常会遇到批量删除缓存的情况,但是对于在客户端中,如果一个一个的删除key,则需要较长时间及相对麻烦,可以使用以下命令,批量删除缓存. 本地批量删除KEY: ./redis ...
随机推荐
- hystrix文档翻译之Dashboard
Dashboard Hystrix Dashboard可以让你实时监控hystrix的metrics信息. 当netflix开始使用dashboard后,运维效率得到了极大的提升,并且极大降低了大多数 ...
- 2.Scala安装配置和使用
- 【微服务】 数据库案例理解Spring Security OAuth
突然被问,你是做技术的怎么不走技术路线呢?是啊~仔细想想至今做了这么多年的技术,研发过的系统&产品五花八门,涉及到的领域各行各业:政府.军队.公安.国安.石油&石化.金融.教育.华为等 ...
- 【FLASK】钩子函数的使用
from flask import Flask from flask import abort app = Flask(__name__) # 在第一次请求之前调用,可以在此方法内部做一些初始化操作 ...
- Java Web学习(七)HttpServletResponse(客户端响应)
一.定义 HttpServletResponse对象代表服务端的响应,通过这个对象提供的方法,可以向客户机输出数据. 二.常用方法 在JavaWeb开发中,只要是写URL地址,那么建议最好以" ...
- CVE-2018-8045
Joomla!Core SQL注入漏洞 CVE-2018-8045 受影响版本:joomla!3.5.0-3.8.5 漏洞描述: joomla!3.5.0-3.8.5版本对sql语句内的变量缺少类型转 ...
- MySQL5.7用户创建及权限管理
一 用户.权限管理 1.1 用户 作用: 登录,管理数据库逻辑对象 定义: 用户名@'主机值' 主机值可以是主机名或IP地址,主机值中允许使用通配符 root@'10.0.0.%' root@'%' ...
- python文档下载
网址记录:https://docs.python.org/3.6/
- C# 读取路径的各种方式
//1.获取模块的完整路径. string path1 = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; // ...
- Java安全之Commons Collections1分析前置知识
Java安全之Commons Collections1分析前置知识 0x00 前言 Commons Collections的利用链也被称为cc链,在学习反序列化漏洞必不可少的一个部分.Apache C ...