2017-08-08 26 views

回答

-1

是的,transformPage方法在兩個視圖上同時被調用。您可以在transformPage方法的第一個參數中獲取當前視圖實例。

public void transformPage(View view, float position) {...} 

第二個參數是視圖的位置。如文檔中所述

頁面相對於當前正面和中心的位置 *尋呼機的位置。 0是前面和中心。 1是一個完整的 *頁面位置向右,-1是一個頁面位置向左。

一種簡單FadIn和FadOut轉化可以用下面的代碼

public class MyFadePageTransformer implements ViewPager.PageTransformer { 
    public void transformPage(View view, float position) { 

     //You can set Tag to view object and getTag to know current view 
     //Log.d("Page Transform", "page " + view.getTag().toString()); 

     if (position < -1 || position > 1) { 
      view.setAlpha(0); 
     } 
     else if (position <= 0 || position <= 1) { 
      // Calculate alpha. Position is decimal in [-1,0] or [0,1] 
      float alpha = (position <= 0) ? position + 1 : 1 - position; 
      view.setAlpha(alpha); 
     } 
     else if (position == 0) { 
      view.setAlpha(1); 
     } 
    } 
} 

然後加入PageTransformer到ViewPager

mViewPager.setPageTransformer(false, new MyFadePageTransformer()); 
被施加
相關問題