java - Disappearing data from RecyclerView -
i made app fragment containing viewpager. inside viewpager displaying list using recyclerview. when launch app great. when swipe few tabs , coming list isn't shown. don't know wrong...
fragment displayed inside viewpager
public class gradesfragmentpage extends fragment { view view; list<grade> gradelist; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { return inflater.inflate(r.layout.grades_page_fragment, container, false); } @override public void onactivitycreated(bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); betterrecyclerview betterrecyclerview = (betterrecyclerview) getactivity().findviewbyid(r.id.gradesrecycler); betterrecyclerview.setlayoutmanager(new linearlayoutmanager(getactivity())); } @override public void onviewcreated(view view, bundle savedinstancestate) { this.view = view; if(getarguments() != null) { gradelist = getarguments().getparcelablearraylist("grades"); betterrecyclerview betterrecyclerview = (betterrecyclerview) view.findviewbyid(r.id.gradesrecycler); betterrecyclerview.setadapter(new gradesadapter(getactivity(), gradelist)); } } } betterrecyclerview
public class betterrecyclerview extends recyclerview { public betterrecyclerview(context context) { super(context); } public betterrecyclerview(context context, attributeset attrs) { super(context,attrs); setlayoutmanager(new layoutmanager() { @override public layoutparams generatedefaultlayoutparams() { return null; } }); } public betterrecyclerview(context context, attributeset attrs, int defstyle) { super(context, attrs, defstyle); } //we need protected method scroll detection public int getverticalscrolloffset() { return computeverticalscrolloffset(); } }
viewpager has method setoffscreenpagelimit allows specify number of pages kept adapter. fragments far away destroyed.
first of looking @ code don't see doing memory releasing measures in fragments ondestroy(). fact fragment destroyed , gc'ed not mean resources allocated removed too.
viewpager.setoffscreenpagelimit(10);
Comments
Post a Comment