我正在使用来自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();
的末尾答案 0 :(得分:0)
public void setOffscreenPageLimit(int limit)
设置应保留在页面两侧的页数 处于空闲状态的视图层次结构中的当前页面。页面超出此范围 在需要时,将从适配器重新创建限制。
这是作为优化提供的。如果您事先知道这个号码 您将需要支持或具有延迟加载机制的页面 放在你的页面上,调整这个设置可以带来好处 感知到的分页动画和交互的平滑性。如果你有 少量页面(3-4),您可以一次保持活动状态, 在新创建的视图子树的布局中花费的时间会减少 用户来回翻页。
您应该保持此限制,特别是如果您的网页很复杂 布局。此设置默认为1.
参数限制空闲时屏幕外保留的页数 状态。
将 OffScreenPageLimit 设置为零,然后删除该项目。您可以再次将 OffScreenPageLimit 设置为1(默认值)。