Делаю приложение - мозайка из полигонов.
Пользователь пальцем вытаскивает полигон из списка и ведет к нужному месту в каркасе, при совпадении полигон в каркасе закрашивается, и удаляется из ViewPager. При закрашивании память накапливается и вылетает OutOfMemory. Используя Profiler выяснил что память накапливается при удалении полигона из ViewPagerAdapter, а именно при вызове notifyDataSetChanged(), если не вызывать notifyDataSetChanged то память очищается и не накапливается.
Удаление из PagerAdapter:
pagerAdapter.removeView(view);
PagerAdapter:
@Override
public int getCount() {
return adapterPolygons.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view == o;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
LayoutInflater inflater = LayoutInflater.from(container.getContext());
View view = load(container, inflater, position);
return view;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
private View load(ViewGroup container, LayoutInflater inflater, int position) {
View view = inflater.inflate(R.layout.polygon_model, container, false);
PolygonView polygonView = view.findViewById(R.id.polygon);
polygonView.setMathPolygon(mathPolygon);
polygonView.setPolygon(adapterPolygons.get(position));
manager.setListener(polygonView, adapterPolygons.get(position));
container.addView(view);
return view;
}
@Override
public void removeView(Object object) {
adapterPolygons.remove(object);
notifyDataSetChanged();
}
@Override
public float getPageWidth(int position) {
return 0.25f;
}
@Override
public int getItemPosition(Object object) {
return PagerAdapter.POSITION_NONE;
}
}
Как решить проблему с OutOfMemory?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Камрады, приветствуюОсваиваю java core
Хочу создать игру для Android что-то типа Крокодила или Шляпы, где будут генерироваться словаПодскажите, как можно организовать хранение этих...
Есть две связанные таблицы, Runner и Registration