android Viewpager控件使用随笔
来源:互联网 发布:做微课用什么软件 编辑:程序博客网 时间:2024/06/06 05:57
当前功能是使用ViewPager实现一个像页面滑动展示图片的功能效果如图所示,左右滑动可以删除当前图片,稍记一下笔记。
实现抽象类适配器PagerAdapter类,实现方法getCount()、 isViewFromObject(View view, Object obj)、destroyItem(View container, int position, Object object)、instantiateItem(View container, int position)
1,getCount()是判断有多少子控件
2,isViewFromObject()判断是否新建一个控件,不清楚啥作用
3,、destroyItem销毁一个子控件,Viewpager不会一次将所有子控件创建出来,第一次显示的时候会显示第一个子控件和等待在右侧的第二个子控件,当屏幕向左滑动到第二个子控件显示后会再初始化第三个子控件,
再滑动到第三个子控件的时候会将第1个子控件销毁,并初始化第四个子控件。依次类推,ViewPager的子控件最多有3个,调用viewPager.getChildCount()可以查看当前控件的子控件总数,发现不会大于3.
4,instantiateItem初始化控件,当屏幕向左、右滑动时调用,初始化当前显示子控件左右两侧的兄弟控件,用来在左右滑动过程中替换显示。
5,本功能中要求删除动态删除图片来改变ViewPager的子控件,是这样实现的:
adapter.removeImageView(position);
imagesPath.remove(position);
viewPager.destroyDrawingCache();
viewPager.setAdapter(adapter);
viewPager.invalidate();
记录一个细节问题:
在destroyItem()销毁子控件和instantiateItem()初始化控件方法中有一细节知识,
((ViewPager) container).removeView(views.get(position% views.size()));
这里添加时调用的是views.get(position&views.size()),而不是直接调用views.get(position)
((ViewPager) container).addView(views.get(position % views.size()),0);
这里也是一样的情况
原因是这样的:
在ViewPager被初始化时,会先初始第第1个子控件和第2个子控件,因为滑动时要第1个和第2个过渡,所以 第2个也先预备好。这里要添加的控件集合是views
1,调用instantiateItem()初始第前两个控件,将views(1)添加到position=0的位置,那view(0)就到了第1个位置2,向右滑动显示显示第2个控件会初始化第3个控件,view(2)在ViewPager中就变成了position=0,view(1)就变成了position=1,view(0)就变成了position=2
3,再向右滑动显示第三个控件就会初始化第四个控件,view(3)就变成了position=0,view(2)变成了position=1,view(1)就变成了position=2,这里调用destroyItem()方法要销毁
view(0)控件,position这里值是3,views能显示到第三个控件说明size>3,所以position%views.size()肯定是0了,这样才能销毁views(0)
- android Viewpager控件使用随笔
- Android ViewPager控件的使用
- Android ViewPager控件的使用(基于ViewPager的横向相册)
- Android ViewPager控件的使用(基于ViewPager的横向相册)!!!
- Android ViewPager控件的使用(基于ViewPager的横向相册)!!!
- Android ViewPager控件的使用(基于ViewPager的横向相册)!!!
- Android常用复杂控件使用(一)--ViewPager
- Android常用控件之ViewPager的使用
- android的viewpager控件的使用
- android常用的控件ViewPager的使用
- android控件之ViewPager
- ViewPager使用控件问题
- Android学习笔记32:滑屏控件ViewPager的使用
- Android高级控件系列六之ViewPager的使用
- (ViewPager)Android ViewPager使用详解
- Android 父控件wrap_content随笔
- Android基础:翻页控件Viewpager的使用方法,viewpager+fragment混合使用
- Android中的ViewPager指示控件
- 火车采集器官方博客
- 整数1~10的阶乘
- 浅析linux内核内存管理之PAE
- swift-var/let定义变量和常量
- 【Android界面实现】带有指示器的自定义底部导航栏的实现
- android Viewpager控件使用随笔
- 一个好看的php验证码源码
- jquery validform 插件使用
- 阿里魅族高层“豪赌”千万为了啥?入口利益之争
- 网络笔记突破500
- 微信开发公共服务平台开发(.Net) - 网页授权获取用户基本信息
- javaMail发送邮件(支持单发、群发)
- 常见网络攻击
- linux shell各种字符串截取方法