翻页视图ViewPager
上一节介绍的ListView与GridView,一个分行展示,另一个分行又分列,其实都是在垂直方向上下滑 动。有没有一种控件允许页面在水平方向左右滑动,就像翻书、翻报纸一样呢?对于这种左右滑动的翻页功能,Android提供了已经封装好的控件,就是翻页视图ViewPager。对于ViewPager来说,一个页面就是一 个项(相当于ListView的一个列表项),许多页面组成ViewPager的页面项。、
明确了ViewPager的原理类似ListView和GridView,翻页视图的用法也与它俩类似。ListView和 GridView的适配器使用BaseAdapter,ViewPager的适配器使用PagerAdapter;ListView和GridView的监听器使用OnItemClickListener,ViewPager的监听器使用OnPageChangeListener,表示监听页面切换事件。
下面是ViewPager三个常用方法的说明。
- setAdapter:设置页面项的适配器。适配器用的是PagerAdapter及其子类。
- setCurrentItem:设置当前页码,即打开翻页视图时默认显示哪个页面。
- addOnPageChangeListener:设置翻页视图的页面切换监听器。该监听器需实现接口
OnPageChangeListener下的3个方法,具体说明如下。
- onPageScrollStateChanged:在页面滑动状态变化时触发。
- onPageScrolled:在页面滑动过程中触发。
- onPageSelected:在选中页面时,即滑动结束后触发。
翻页适配器PagerAdapter与基本适配器BaseAdapter的用法相近,需实现构造函数、获取页面个数的 getCount方法、生成单个页面视图的instantiateItem方法,另外多了一个回收页面的destroyItem方法。
翻页标题栏PagerTitleStrip/PagerTabStrip
为了方便开发者处理ViewPager的页码显示与切换,Android附带提供了两个控件,分别是 PagerTitleStrip和PagerTabStrip。二者都是在ViewPager页面上方展示设定的页面标题,不同之处在于 PagerTitleStrip只是单纯的文本标题效果,无法点击进行页面切换;PagerTabStrip类似选项卡效果,文本下面有横线,点击左右选项卡即可切换到对应页面。要想在标题栏显示指定的文字,得重写PagerAdapter的 getPageTitle方法,在这方面两个控件的处理是一样的