2012-04-08 73 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