PagerAdapter簡介
PagerAdapter是android.support.v4包中的類,它的子類有FragmentPagerAdapter、 FragmentStatePagerAdapter,這兩個adapter都是Fragment的適配器,用於實現Fragment的滑動效果,這兩個adapter的使用和區別這次就先不介紹了。
PagerAdapter主要是viewpager的適配器,而viewPager則也是在android.support.v4擴展包中新添加的一個強大的控件,可以實現控件的滑動效果,比如咱們在軟件中常見的廣告欄的滑動效果,用viewPager就可以實現。今天主要介紹如何使用viewPagr並重寫PagerAdapter實現常見廣告欄的滑動效果。
PagerAdapter用法簡介
首先,如果繼承pageradapter,至少必須重寫下面的四個方法:
1. instantiateItem(ViewGroup, int)
2. destroyItem(ViewGroup, int, Object)
3. getCount()
4. isViewFromObject(View, Object)
下面我們以代碼的形式,說明這四個方法的含義以及如何使用:
private class ViewPagerAdapter extends PagerAdapter { // 獲取要滑動的控件的數量,在這里我們以滑動的廣告欄為例,那么這里就應該是展示的廣告圖片的ImageView數量 @Override public int getCount() { return images.size(); } // 來判斷顯示的是否是同一張圖片,這里我們將兩個參數相比較返回即可 @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } // PagerAdapter只緩存三張要顯示的圖片,如果滑動的圖片超出了緩存的范圍,就會調用這個方法,將圖片銷毀 @Override public void destroyItem(ViewGroup view, int position, Object object) { view.removeView(images.get(position)); } // 當要顯示的圖片可以進行緩存的時候,會調用這個方法進行顯示圖片的初始化,我們將要顯示的ImageView加入到ViewGroup中,然后作為返回值返回即可 @Override public Object instantiateItem(ViewGroup view, int position) { view.addView(images.get(position)); return images.get(position); } }