PagerAdapter基本概况
来源:互联网 发布:同城团购用什么软件 编辑:程序博客网 时间:2024/06/10 00:44
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
PagerAdapter
至少实现
- public Object instantiateItem(ViewGroup container,int position)
建立指定位置的page
return: Object,代表new Page (不一定一定是view,任一可代表view的key值都可以)
- public void destroyItem(ViewGroup container,int position,Object object)
移除相关item
其中参数 object为 :the same object that was returned by 'instantiate(container,position);
- public abstract int getCount()
- public abstract boolean isViewFromObject(View view,Object object)
其中参数 object 同 1 中返回的object配对。
view: Page view to check for associate with object
object: object to check for associate with view
功能: 判断1 中返回的key(Object)与一个页面视图是否代表的是同一个视图(即他俩是否是对应的,是否表示同一个view)
其他非必须实现的:
- public void startUpdate(ViewGroup container)
- public void finishUpdate(ViewGroup container)
- public void notifyDataChanged()
- public int getItemPosition(Object object)
"called when the host view is attempting to determine if an item's position has changed"
return: POSITION_UNCHANGED: position of given item has not changed(默认不更新)
POSITON_NONE: the item is no longer present(会更新)
- public float getPageWidth(int position)
"return the proportional width of a given page as a percentage of the viewPager's measured width from(0.f~1.f)
占比!
- public void getOffscreenPageLimit(int limit) 默认为1
缓存个数,默认情况下,当前item的左一个及右一个缓存,其他的item会destroy
实例:
public class ViewPagerAdapterStyle extends PagerAdapter {
private List<Entity> tDataList = new ArrayList<Entity>();
public ViewPagerAdapterStyle(List<Entity> dataList) {
if (dataList != null) {
tDataList.addAll(dataList);
}
}
@Override
public int getCount() {
return tDataList.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void startUpdate(ViewGroup container) {
super.startUpdate(container);
}
@Override
public void finishUpdate(ViewGroup container) {
super.finishUpdate(container);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// ((ViewPager) view).removeView(viewLists.get(position));
if (container instanceof ViewPager) {
(container).removeView((View) object);
}
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
// }
// return super.getItemPosition(object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
final Entity data = dataList.get(position);
ViewHolder_002 viewHolder_002 = null;
View item = container.findViewById(position);
if (item == null) {
item = ImageUtil.inflate(R.layout.container, null);
viewHolder_002 = new ViewHolder_002();
viewHolder_002.img = (SimpleDraweeView) item.findViewById(R.id.backImg);
item.setId(position);
item.setTag(viewHolder_002);
} else {
viewHolder_002 = (ViewHolder_002) item.getTag();
}
setBackImg(viewHolder_002.img, data.img);
if (container instanceof ViewPager) {
(container).addView(item);
}
setOnClickListener(item, data.jump);
return item;
}
//设置页卡每页显示item的数量
@Override
public float getPageWidth(int position) {
if (getCount() == 1) {
return 1;
} else {
return pageWidth;
}
}
}
0 0
- PagerAdapter基本概况
- ATL的基本概况
- Yarn架构基本概况(一)
- Yarn架构基本概况(二)
- Thread线程的基本概况
- PagerAdapter
- PagerAdapter
- PagerAdapter
- PagerAdapter
- PagerAdapter
- PHP模板引擎Smarty详解(基本概况)
- EF学习初级篇1--基本概况
- Vaadin 的基本概况和基础开发
- OpenCV的概况和基本数据结构
- Vaadin 的基本概况和基础开发
- Android RxJava学习二,基本概况分析
- Entity Framework 学习初级篇1--EF基本概况
- CDMA学习笔记(一):历史和基本概况
- 牛人博客链接--高级算法、智能视频、嵌入式软件、DSP应用开发,algorithem,c++,c,视频处理,图像处理
- 畅捷通前端面试题
- Android Fragment 基本介绍
- Codeforces 675C Money Transfers (扫描)
- 122. Best Time to Buy and Sell Stock II
- PagerAdapter基本概况
- 1.UIAlertController
- Mac OS X中MacPorts安装和使用
- 金蝶结账的时候出现压缩账套失败 KIC_Compress.KD
- 架构漫谈(六):软件架构到底是要解决什么问题?
- 短信接口
- jsp九大内置对象、四种作用域、跳转方式
- 轻量响应式 CSS 框架
- java多线程学习