我正在使用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对象对象)方法。第一件事,我不想重新实例化我的寻呼机适配器,否则我将丢失我编辑的其他图像的数据。我不明白我该怎么办。任何帮助,将不胜感激。谢谢