我有一個使用代碼的工作viewpager示例,我從教程中獲得。本教程由Lauren Darcey和Shane Conder編寫,他們顯然是專家(我是Android的新手)。代碼粘貼在下面。這段代碼正在做的是在用戶水平滑動時膨脹(提前)和破壞(後面)。只有5頁。看起來,將它們全部膨脹然後讓用戶在沒有通貨膨脹/破壞的情況下進行所有的刷卡會更聰明。就像它是一個寬大的頁面(例如Windows Phone 7中的Panarama和Pivot控件)。此外,如果其中一個網頁上有谷歌地圖,此代碼就會發作。它打擊了第二次通貨膨脹(不知道爲什麼),如果他們只是一次充氣,這種情況就不會發生。使用viewpager的最佳方式
有沒有必要這樣做的原因?有沒有任何例子可以按照我的建議進行操作? 謝謝, 加里·布萊克利
private class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 5;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.farleft;
break;
case 1:
resId = R.layout.left;
break;
case 2:
resId = R.layout.middle;
break;
case 3:
resId = R.layout.right;
break;
case 4:
resId = R.layout.farright;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
Eric,那麼工作得很好!它每頁膨脹一次,滾動快速而平穩。之後,instantiateItem再也不會被調用。謝謝。 – 2012-08-17 17:58:41
「只需將其設置爲4(總共5個,減1可見)」是不正確的。如果數字設置爲4,則頁面足夠多時將加載9頁,因爲ViewPager將在當前頁面的任一側保留4頁。請參閱文檔http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit \(int \) – 2012-11-16 10:59:40
@Leoguo是的,它是正確的。總共只有5頁。加載9沒有意義;沒有9頁要加載。相反,操作系統會將所有ViewPager的頁面加載到內存中,除非當前頁面(只要您更改頁面就存儲),這樣就不會重新創建它們。 – Eric 2012-11-16 16:51:46