2015-06-16 25 views
219

今天我試圖設置ViewPager.setOnPageChangeListener,我發現它已被棄用。viewpager setonpagechangelistener已棄用

+12

順便說一句,*這個方法已經過時了。使用addOnPageChangeListener(OnPageChangeListener)和removeOnPageChangeListener(OnPageChangeListener)來代替。*,是從文檔 – Blackbelt

回答

489

我自己找到的答案只是想分享it.i.e,

ViewPager.setOnPageChangeListener現在已經過時了。需要改用ViewPager.addOnPageChangeListener

例如,

ViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

     } 

     @Override 
     public void onPageSelected(int position) { 

     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 

     } 
    }); 

您可以在Google Developer site.

+2

看來Eclipse甚至找不到方法addOnPageChangeListener,請問哪些支持庫是從這個? –

+5

我認爲在這裏值得一提的是clearOnPageChangeListeners(),所以在使用addOnPageChangeListener()時,最終不會有多個偵聽器。 – clocksmith

+2

這很混亂。如果他們保持相同的語法並簡單地將此調用替換爲更新後的版本,那將會很好。 –

5

找到這個您可以通過SimpleOnPageChangeListener 下面實現代碼如下:

private Fragment page = null; 
/** Defining a listener for pageChange */ 
     ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener(){ 
      @Override 
      public void onPageSelected(int position) { 
       super.onPageSelected(position); 

       page = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager_selectPhotos + ":" + position); 

       System.out.println(page); 
       switch (position) { 
       case 0: 

        break; 
       case 1: 

        break; 

       default: 
        break; 
       } 
      } 
     }; 
     /** Setting the pageChange listener to the viewPager */ 
     _pager.setOnPageChangeListener(pageChangeListener); 
+0

問題是* deprecated * setOnPageChangeListener函數的替代品。 – Elementary

32

使用ViewPager.addOnPageChangeListener而不是ViewPager.setOnPageChangeListener

33

這個工作對我來說:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){ 

    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {  
     conterchange.setText(""+(1+position)); 
    } 

    @Override 
    public void onPageSelected(int position) { 
    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 
    } 
});