2012-04-08 72 views
3

我使用ViewPager和android.support.v4.view.ViewPager庫中的PagerAdapter,我想刪除數字零項如果列表,當我的當前項目也是數字零。我可以刪除它沒有任何錯誤,但屏幕不會立即刷新。如果我轉到第2項並返回,則更新項目零。任何人都可以解決這個問題嗎?使用ViewPager和PagerAdapter,如何刪除當前項目爲'0'的位置'0'的項目?

我使用下面的刪除功能:

public View removePage(int position) { 
     if ((position < 0) || (position >= getSize()) || (getSize()<=1)) { 
      return null; 
     } else { 
      if (position == mPager.getCurrentItem()) { 
       if(position == (getSize()-1)) { 
        mPager.setCurrentItem(position-1); 
       } else if (position == 0){ 
        mPager.setCurrentItem(1); 
       } 
      } 
      View tempView = myPagerAdapter.mListViews.remove(position); 
      myPagerAdapter.notifyDataSetChanged(); 
      return tempView; 
     } 
    } 

而且我想這個問題應該在

setCurrentItemInternal(newCurrItem, false, true); 

與newCurrItem的「0」參數的函數調用發生了, ViewPager.java中的'0'的mCurItem。此外,麻煩應該在completeScroll();或scrollTo(destX,0);在setCurrentItemInternal()的結尾處;

+0

現在只想問同樣的問題!面對這個問題昨晚,我無法繞過它的方式。 – M2X 2012-04-09 09:07:14

回答

0

http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit(int

公共無效setOffscreenPageLimit(INT限制)

一套應保留在視圖層次結構的 當前頁面的兩側處於空閒狀態的頁數。超出此限制的頁面將在需要時從適配器重新創建。

這是作爲優化提供的。如果您事先知道您需要支持的頁面的數量爲 ,或者在您的頁面上有 位置的延遲加載機制,那麼調整此設置可以讓 感受到分頁動畫和交互的平滑感。如果您有 少量的頁面(3-4),您可以一次保持活動狀態, 用戶頁面來回更少的時間將花費在新創建的視圖子樹的佈局上 。

您應該保持低限,特別是如果您的頁面有複雜的 佈局。此設置默認設置爲1.

參數限制在空閒 狀態下將保留多少頁面不在屏幕外。

OffScreenPageLimit設置爲零並移除該項目。您可以再次將OffScreenPageLimit設置爲1(默認)。

+0

將頁面限制設置爲零不起作用。 請看看這是我從ViewPager.java 公共無效setOffscreenPageLimit(INT限制){ 帶來如果(限 theWook 2014-03-07 08:23:00