【发布时间】:2018-01-21 19:24:30
【问题描述】:
在 ViewPager 中,当用户单击删除按钮时,我试图删除当前页面并移至下一页。 当我尝试下面的代码时,它会移动到下一页但会删除最后一页。请帮助我。
@Override
public Object instantiateItem(ViewGroup container, final int IdxVal)
{
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
Glide.with(context)
.load(imageListAryVar.get(IdxVal))
.fitCenter()
.into(imageView);
linearLayout.addView(imageView);
container.addView(linearLayout);
return linearLayout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
container.removeView((LinearLayout) object);
}
void delCurrentPageFnc()
{
int delIdxVar = viewPager.getCurrentItem();
if(imageListAryVar.size() > 1)
{
if (delIdxVar == imageListAryVar.size() - 1)
viewPager.setCurrentItem(delIdxVar - 1);
else
viewPager.setCurrentItem(delIdxVar + 1);
imageListAryVar.remove(delIdxVar);
notifyDataSetChanged();
}
else finish();
}
【问题讨论】:
-
删除
if (delIdxVar == imageListAryVar.size() - 1) viewPager.setCurrentItem(delIdxVar - 1); else viewPager.setCurrentItem(delIdxVar + 1);可以试试吗? -
如果我删除它,页面不会自动移动到下一页
-
notifyDataSetChanged();不会调用 instantiateItem();
-
或许你可以试试
viewpager.removeViewAt(int index)。 -
viewpager.removeViewAt(int index) 不存在
标签: java android android-viewpager notifydatasetchanged current-page