Android 之 VeiwPager
来源:互联网 发布:mac 不能建立安全连接 编辑:程序博客网 时间:2024/06/15 14:11
1.ViewPager的特点:
ViewPager直接继承与ViewGroup,是一个容器类控件,可以在其中添加其他的view。
ViewPager需要通过PageAdapter适配器类给他提供数据。
ViewPager经常和Fragment连用,有FragmentPageAdapter 和FragmentSatePageAdapter类,来提供Fragemtn给ViewPager
2 回顾适配器:
介绍的BaseAdapter 和CursorAdapter 类及其子类的应用
BaseAdapter :基本适配器的抽象类型,常用的子类包括ArrayAdapter 和SimpleAdapter。
如果需要存储复杂数据时,直接继承与BaseAdapter。重写四个方法:
getCount : 返回数据源的大小,包含多少个列表项
getItem : 返回指定位置上的数据
getItemId : 返回指定位置上item控件对应的id
getview : 返回指定位置上上的控件
CursorAdapter : 继承于BaseAdapter,他为cursor和ListView提供了连接的桥梁
重写2个方法 new view() 生成item对应的视图 bindView() 初始化视图对应的控件
3 PageAdapter
需要重写的方法
instantiateItem(ViewGroup,int) 根据指定的下标创建viewpager当中的pager页
destroyItem(viewgroup,int,Object)根据指定的下标移除viewPager中的page页
getcount:当前适配器加载的数据的条目
isViewFromObject(View,object):判断viewpage中加载的view和 instantiateItem实例化的view是不是一致的。
4.ViewPager监听页面改变的监听器 OnPageChangeListener
vp.setOnPageChangeListener(new OnPageChangeListener() {
/**
* 页面被选中时回调的方法
* position :表示页面的位置
* */
@Override
public void onPageSelected(int position) {
for (int i = 0; i < icons.length; i++) {
icons[i].setImageResource(R.drawable.icon02);
}
icons[position].setImageResource(R.drawable.icon01);
}
/**页面滚动时回调的方法
* position:当前页面向下滑动的角标
* positionOffset:当前页面滑动的偏移量
* positionOffsetPixels:当前页面滑动的偏移量对应的像素值
* */
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
/**当页面滚动状态改变时回调的方法
* 参数包含三种状态:
* SCROLL_STATE_IDLE :停止状态
SCROLL_STATE_DRAGGING:滚动状态
SCROLL_STATE_SETTLING:选中状态
* */
@Override
public void onPageScrollStateChanged(int position) {
}
});
}
5.PagerTitleStrip的特点
1.在布局中,把PagerTitleStrip作为viewpager的子控件进行添加。
2.标题的获取,通过重写适配器的getPageTitle方法,来设置标题。
6.PagerTitleStrip和PagerTabStrip的区别:
1.PagerTabStrip的底部有一条下划线,选中项的下划线可以改变颜色并且是加粗的。
2.PagerTabStrip是可以被点击的,跳转到对应的页面,能够与viewpager进行交互。而PagerTitleStrip是不能够被点击的。
tabStrip.setDrawFullUnderline(false); //设置是否取消下划线
tabStrip.setBackgroundColor(Color.RED); //设置背景颜色
tabStrip.setTabIndicatorColor(Color.GREEN); //设置选中项的下划线颜色
pageAdapter 处理前后滑动出错的解决办法
public class MyPageadapter extends PagerAdapter {private Context context;private List<ImageView> list;//private List<View> list;public MyPageadapter(Context context, List<ImageView> list) {//public MyPageadapter(Context context, List<View> list) {super();this.context = context;this.list = list;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn Integer.MAX_VALUE;}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {View v = list.get(position % list.size());ViewGroup parent = (ViewGroup) v.getParent();if (parent != null) {parent.removeView(v);}container.addView(v);return v;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {// TODO Auto-generated method stub}}
- Android 之 VeiwPager
- VeiwPager、Gallery、ViewFlipper区别
- VeiwPager中滑动事件冲突解决方案
- Android之 Android 虚拟机
- Android之 Android 虚拟机
- Android之android:launchMode
- Android之android:launchMode
- Android之android:launchMode
- Android之android:launchMode
- Android 之 Android Studio
- 【Android】Android之创建活动
- 【Android】Android之intent
- android之android-autofittextview
- android 学习之---Android之GoogleMap(转)
- android高手之路之Android Widget
- Android学习之路之Android基本知识
- android之ArrayAdaper之Spinner
- android Preference之android:dependency
- IOS RunLoop浅析 三
- MFC对Unicode与Multibyte Character Set(MBCS)的支持
- 用户认证(二)【使用Flask-Login认证用户】
- 使用 BULK INSERT 或 OPENROWSET(BULK...) 导入批量数据 (SQL Server)
- Ubuntu 14.04下,apt-get update出现错误
- Android 之 VeiwPager
- 编程这条路
- 百宝云注册码系统_mysql版
- 消息转发-NSInvocation和NSUndoManager的关系
- 自定义dialog宽度填充屏幕
- 第二节、AHK创建第一个脚本
- 位移传感器
- map to jsonStr,以及jsonStr to jsonObj(groovy&grails)
- 内部类