Я показываю несколько изображений на пейджере, используя PagerAdapter
, в котором я реализовал некоторые функции рисования.Например, у меня есть 5 изображений в моем пейджере просмотра.Я рисую линию на 2-м изображении и теперь хочу удалить 3-е изображение, поэтому после удаления 3-го изображения в той же позиции отображается пустая страница, а также невозможно провести в правильном направлении.Вот мой код для щелчка на удаленном представлении в 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) метод.Во-первых, я не хочу создавать экземпляр моего адаптера пейджера, иначе я потеряю данные других изображений, которые я редактировал.Я не понимаю, что мне нужно делать.Любая помощь будет признательна. Спасибо