Android App开发中ViewPager组件的入门使用教程

2019-12-10 18:37:30于丽

在这里更改了两个地方:
1、先看Key的产生的位置instantiateItem()

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
  // TODO Auto-generated method stub 
  container.addView(viewList.get(position)); 
 
  //把当前新增视图的位置(position)作为Key传过去 
  return position; 
} 

在这个函数中Key是作为返回值与当前装入Container中的视图对应起来的。所以在这里我们返回postion与container.addView(viewList.get(position));里的viewList.get(position)这个视图对应起来。
2、isViewFromObject ()

@Override 
public boolean isViewFromObject(View arg0, Object arg1) { 
  // TODO Auto-generated method stub 
  //根据传来的key,找到view,判断与传来的参数View arg0是不是同一个视图 
  return arg0 == viewList.get((int)Integer.parseInt(arg1.toString())); 
} 

判断从instantiateItem()返回来的Key与当前的View是否能对应起来,我们知道从instantiateItem传过来的其实是position,所以我们要根据position找到View,然后跟参数中的View arg0判断。

但在真正操作时出现了问题,我们要先将obect对应转换为int类型:(int)Integer.parseInt(arg1.toString());然后再根据position找到对应的View;

效果图:三个View之间的滑动切换

Android,App开发,ViewPagerAndroid,App开发,ViewPager