android - Lost reference of Fragments in FragmentPagerAdapter -
i have simple fragmentpageradapter :
public class sectionspageradapter extends fragmentpageradapter { public sectionspageradapter(fragmentmanager fm) { pageradapterlist = new arraylist<>(); super(fm); } @override public fragment getitem(int position) { pageradapter fragment; if (position > pageradapterlist.size() - 1) { fragment = new pageradapter(followrequests.get(position)); pageradapterlist.add(fragment); } else return pageradapterlist.get(position); return fragment; } public int removeview (viewpager pager, int position) { pager.setadapter (null); pageradapterlist.remove (position); data.remove (position); pager.setadapter (this); return position; } @override public object instantiateitem(viewgroup container, int position) { getitem(position); return super.instantiateitem(container, position); } @override public int getcount() { return data.size(); } } and pageradapter class:
public class pageradapter extends fragment { data data; private view overlayview; public pageradapter() { } public pageradapter(data data) { this.data= data; } @nullable @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) { view rootview = inflater.inflate(r.layout.notification_header_fragment_pager, container, false); textview id_txtview = (textview) overlayview = (view) rootview.findviewbyid(r.id.viewoverlay); //bind data example id_txtview.settext(data.gettext()); return rootview; } public void showoverlayview() { if(overlayview != null) overlayview.setvisibility(view.visible); } } first call
removeview(mviewpager, position);
then new data, , call
adapter.notifydatasetchanged();
all things work fine , can bind new data in pageradapter , show on view pager.
but when call
((pageradapter) adapter.getitem(mviewpager.getcurrentitem())).showoverlayview();
i current fragment without reference ui components(like overlayview) , null !!
what's wrong? please me, thanks.
Comments
Post a Comment