视图分页器-从视图分页器中删除视图后,显示空白页

时间:2018-12-24 11:56:11

标签: android android-viewpager android-pageradapter

我正在使用PagerAdapter在视图寻呼机上显示多个图像,其中实现了一些绘图功能。例如,我的视图寻呼机中有5张图像。我在第二张图像上画了一条线,现在要删除第三张图像,因此在删除第三张图像后,它在相同位置显示空白页面,也无法向右滑动。这是我在MyFragment中单击删除视图时的代码。

    public void removeView(){
        imageList.remove(viewPager.getCurrentItem());
        viewPagerAdapter.notifyDataSetChanged();
        // Remove view from view pager
        viewPager.removeViewAt(viewPager.getCurrentItem());
        viewPager.invalidate();
    }

现在,在我的ViewPagerAdapter

public class FullImageViewPagerAdapter extends PagerAdapter {

private List<Image> imageList;

@Override
public boolean isViewFromObject(View view, Object object) {
    return view == object;
}

@Override
public int getItemPosition(@NonNull Object object) {
    if (object instanceof RelativeLayout) {
/*Returning **POSITION_UNCHANGED**, because, after 
removed view, rest of the other views shouldn't change i.e. edited 
image shouldn't change.*/
        return POSITION_UNCHANGED;
    }
/*Returning **POSITION_NONE**, because i want to remove the view.*/
    return POSITION_NONE;
}

@NonNull
@Override
public Object instantiateItem(ViewGroup container, final int position) 
{
    View itemView = layoutInflater.inflate(R.layout.layout_edit, 
    container, false);
    Image photo = imageList.get(position);
    // Rest of code for showing image.
    container.addView(itemView);
    return itemView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object 
object) {
    container.removeView((View) object);
}
}

请查看我的 getItemPosition(@NonNull对象对象)方法。第一件事,我不想重新实例化我的寻呼机适配器,否则我将丢失我编辑的其他图像的数据。我不明白我该怎么办。任何帮助,将不胜感激。谢谢

0 个答案:

没有答案