Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> ViewPager 重新加載 及 PagerAdapter 使用,viewpager重新加載

ViewPager 重新加載 及 PagerAdapter 使用,viewpager重新加載

編輯:關於android開發

ViewPager 重新加載 及 PagerAdapter 使用,viewpager重新加載


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)  返回對象表明了PagerAdapter適配器選擇哪個對象放在當前的ViewPager中
2. destroyItem(ViewGroup, int, Object) ViewGroup中移出當前View
3. getCount() 獲取當前窗體界面數
4. isViewFromObject(View, Object)  用於判斷是否由對象生成界面
下面我們以代碼的形式,說明這四個方法的含義以及如何使用

 

 1  private class ViewPagerAdapter extends PagerAdapter {
 2         // 獲取要滑動的控件的數量,在這裡我們以滑動的廣告欄為例,那麼這裡就應該是展示的廣告圖片的ImageView數量
 3         @Override
 4         public int getCount() {
 5             return 0;
 6         }
 7 
 8         // 來判斷顯示的是否是同一張圖片,這裡我們將兩個參數相比較返回即可
 9         @Override
10         public boolean isViewFromObject(View arg0, Object arg1) {
11             return arg0 == arg1;
12         }
13 
14         // PagerAdapter只緩存三張要顯示的圖片,如果滑動的圖片超出了緩存的范圍,就會調用這個方法,將圖片銷毀
15         @Override
16         public void destroyItem(ViewGroup view, int position, Object object) {
17         }
18 
19         // 當要顯示的圖片可以進行緩存的時候,會調用這個方法進行顯示圖片的初始化,我們將要顯示的ImageView加入到ViewGroup中,然後作為返回值返回即可
20         public Object instantiateItem(ViewGroup container, int position) {
21             return container;
22         }
23 
24         public int getItemPosition(Object object) {
25             View view = (View)object;
26             int currentPage = ((PhotoPageActivity)context).getCurrentPagerIdx(); // Get current page index
27             if(currentPage == (Integer)view.getTag()){
28                 return POSITION_NONE;
29             }else{
30                 return POSITION_UNCHANGED;
31             }
32         }
33     }
34     // Get current page index
35     pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
36 
37         @Override
38         public void onPageSelected(int position) {
39             currentItem = position;
40         }
41 
42         @Override
43         public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
44         }
45 
46         @Override
47         public void onPageScrollStateChanged(int state) {
48         }
49     });
50     // Return current index to Adapter
51     public int getCurrentPagerIdx() {
52         return currentItem;
53     }

 

如果想要刷新 直接調用notifyDataSetChanged()

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved