Android开发Android技术知识Android知识

# ViewPager PagerAdapter源码分析

2016-04-21  本文已影响416人  伍零一

引言

我们知道ViewPager 如果切换的是Fragement,可以用FragmentPagerAdapter 或者 FragmentStatePagerAdapter,如果我们需要切换的是ImageView或者其他View,则需要继承使用PageAdapter,当然FragmentPagerAdapterFragmentStatePagerAdapter也是实现的PagerAdapter。所以我们来分析下PagerAdapter.

PagerAdapter使用

当我们继承使用PagerAdapter的时候需要实现四个方法:

ViewPager绘制流程

SlidePagerAdapter adapter = new SlidePagerAdapter(getSupportFragmentManager());
//extends PagerAdapter
viewPager.setAdapter(adapter);

上面是使用ViewPager的常用方式,我们来看下setAdapter后发生了什么.

populate method.jpg

startUpdate(ViewGroup container)表示ViewPager开始绘制

getCount然后获取page的数目。

我们再往下看

populate method .jpg addNewItem.jpg
populate中会调用****addNewItem,addNewItem中调用instantiateItem(View container, int position)创建View

populate下面也会调用destroyItem等PagerAdapter的方法。这里我们就不做过多的介绍了。

总结

  1. ViewPager的适配器都要继承使用PagerAdapter,如果扩展滑动其他View,实现PagerAdapter即可
  2. ViewPager实现绘制的主流程在populate method中实现。
上一篇 下一篇

猜你喜欢

热点阅读