ViewPager的重用

2024-05-11 06:38
文章标签 viewpager 重用

本文主要是介绍ViewPager的重用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实现重用,对 ImageView效果不好,准确的说是大图,会oom,最好自定义ImageView对图片手动释放
ViewPager一次最多生成6个View,除去初始化的时候,有3个view是一直存在的,切换时生成第4个view,切换完成时移除第1个;跳转时会生成6个view,跳转完成时移除前3个view
private class ViewPagerAdapter extends PagerAdapter {
private SparseArray<View> addList;
private List<View> removeList;
public ViewPagerAdapter(){
addList = new SparseArray<>();
removeList = new ArrayList<>();
}@Override
public int getCount() {
return 50;
}@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view = addList.get(position);
container.removeView(view);
addList.remove(position);//删除页面不使用的View
removeList.add(view);//不使用的View添加到removeList里
}@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = null;
if(removeList.size() != 0){
view = removeList.get(0);//当removeList有View时提取
removeList.remove(0);
}
view = getView(container,view,position);
addList.put(position,view);//添加到addList里
container.addView(view);
return view;
}public View getView(ViewGroup container,View view, int position){
//此处和ListView写法一样return view;
}
}



这篇关于ViewPager的重用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978779

相关文章

ViewPager+fragment实现切换页面(一)

如今的很多应用中都是下面有一排按钮,点击可以切换页面,滑动也可以切换页面。下面就来简单的实现这个功能。 思路 首先肯定是会用到viewpager这个控件,为了能够向下兼容,最好用v4包下的viewpager,Activity要继承FragmentActivity 其次用一个集合来存储所有的fragment页面在设置viewpager的适配器时,把存储fragment页面的list集合传入ada

安卓中的fragment与viewPager的使用问题的解决

最近使用viewPager,结合fragment使用,发现fragment的周期将不符合他的原有的周期流程,多个fragment将会产生错位问题。       通过研究相关代码,发现fragment的切换实际调用的函数为setUserVisibleHint,通过在其中重写方法,将会达到fragment正确切换的效果。       public void setUserVisible

ViewPager切换动画PageTransformer的使用

Android从3.0开始添加了属性动画后,诸多难以实现的动画都可以轻松解决了,v4包下的ViewPager控件当然也不例外,相对于非常平庸的默认切换动画,Google官方给我们展示了两个动画例子:DepthPageTransformer和ZoomOutPageTransformer,比较炫。 实际上我们也可以通过实现ViewPager.PageTransformer接口来做出完全不同的切换

Android-ViewPager禁止左滑(右滑)

因为项目需求,要做一个滑动月份选择的效果,而且滑动到当前月就要禁止左滑到下一个月,百度了下,大多是禁止左右双向滑动,满足不了效果,继续百度了解了下 触摸事件的分发,我决定自己写一个试试,结果效果很好。开始出现了一个bug,来回滑任然能左滑过去,结果发现是仅把按下时作为上一次坐标,来和当前坐标对比,肯定会有不满足的情况。这个问题已经解决了,直接看代码吧。     package

ParallaxViewPager:ViewPager的视差背景效果

源码: Java代码   import android.annotation.SuppressLint;  import android.content.Context;  import android.graphics.Bitmap;  import android.graphics.BitmapFactory;  import android.graphics.Canvas

Android 动态更新Viewpager+fragment完美解决方案

最近遇到个问题,一直没有找到很好的解决方案,今天终于解决了。 Viewpager嵌套多个Fragment 现在我要改变fragment中的数据。 这个非常的简单,网上有很多答案都能解决。 改变Viewpager的数量,也就是说我要动态的增加或者删除Viewpager的页面数量。 这个就非常操蛋了。 查遍资料,才找到解决办法。写下来备忘。 从FragmentPagerAdapter的运行机制

viewpager 无网络的时候滑动异常

不知道大家有没有遇到过这种情况,就是框架是viewpager+fragment的架构。然后呢,fragment里面是webview.一般情况下,当没有网的时候,webviwe会说什么找不到网页,然后很长的一个地址显示在webview上。你能够滑很长。一般没网的时候我们会找个东西盖在上面。如: 如果没网的话,你会发现滑动的时候,滑动不灵敏,因为webwiew在搞鬼。怎么办? 1.重写canS

Android-ViewPager使用示例(二)

根据上一篇Android-ViewPager使用示例 本篇介绍导航点 工程目录结构 核心代码段: Guide.java package com.example.viewpager;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle

C++学习笔记----5、重用之设计(四)---- 设计一个成功的抽象与SOLID原则

1、设计一个成功的抽象         经验与迭代对于好的抽象非常重要。真正好的设计的接口来自于经年的编写与使用其他的抽象。你也可以通过重要既存的、以标准设计模式形式存在的设计好的抽象来利用其他人的经年的编写与使用抽象。当你碰到其他的抽象,尝试记住什么起作用什么不起作用。在上周使用的Windows文件系统API有发现什么缺陷吗?如果你不使用同事的而要自己写网络包装器,会有什么不同吗?最好的接口

ImageLoader进阶(结合ListView、ViewPager使用)

代码下载地址 点击打开链接即可下载 先看主页面的布局ac_home.xml,里面只有一个Button,进入ListView界面展现图片列表 <?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android"android:l