使用ViewPager和PagerAdapter,如何使用当前项“0”删除位置“0”的项目?

时间:2012-04-08 23:00:05

标签: android position android-viewpager

我正在使用来自android.support.v4.view.ViewPager库的PagerAdapter的ViewPager,我想删除数字零项目列表,当我的当前项目也是数字零。我可以删除它没有任何错误,但屏幕不会立即刷新。如果我转到第2项并返回,则更新项目零。任何人都可以解决这个问题吗?

我正在使用下面的删除功能:

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中的mCurItem为'0'。更进一步,麻烦应该在completeScroll();或scrollTo(destX,0);在setCurrentItemInternal();

的末尾

1 个答案:

答案 0 :(得分:0)

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

  

public void setOffscreenPageLimit(int limit)

     

设置应保留在页面两侧的页数   处于空闲状态的视图层次结构中的当前页面。页面超出此范围   在需要时,将从适配器重新创建限制。

     

这是作为优化提供的。如果您事先知道这个号码   您将需要支持或具有延迟加载机制的页面   放在你的页面上,调整这个设置可以带来好处   感知到的分页动画和交互的平滑性。如果你有   少量页面(3-4),您可以一次保持活动状态,   在新创建的视图子树的布局中花费的时间会减少   用户来回翻页。

     

您应该保持此限制,特别是如果您的网页很复杂   布局。此设置默认为1.

     

参数限制空闲时屏幕外保留的页数   状态。

OffScreenPageLimit 设置为零,然后删除该项目。您可以再次将 OffScreenPageLimit 设置为1(默认值)。