android - Fragment not visible in ViewPager -


i have viewpager want add fragments to. viewpager viewed correctly on screen unfortunately not hold content.

i have seen suggestion in posts replace

getsupportfragmentmanager()  

with

getchildfragmentmanager() 

but need actionbar. unfortunately childfragmentmanager not available in appcompatactivity.

while debugging have realized fragment's oncreateview() method called , returns layout.

question: how can make fragments visible? , main difference code sample ?

activity:

public class viewpageractivity extends appcompatactivity {      private viewpager mviewpager;      private list<location> locationlist = new arraylist<>();     private locationsbasehandler db;     private custompageradapter madapter;      private location mlocation;      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);          setcontentview(r.layout.activity_viewpager);          locationlist.add(somedata);          mviewpager = (viewpager) findviewbyid(r.id.viewpager);         madapter  = new custompageradapter(this, getsupportfragmentmanager(), locationlist);          mviewpager.setadapter(madapter);      }  } 

pager adapter:

public class custompageradapter extends fragmentpageradapter {      private context mcontext;     private list<location> locationlist = new arraylist<>();      public custompageradapter(context mcontext, fragmentmanager fm, list<location> locationlist) {         super(fm);          this.locationlist.addall(locationlist);         this.mcontext = mcontext;     }      @override     public fragment getitem(int position) {         return locationfragment.newinstance(position);     }      @override     public int getcount() {         return 5;     }      @override     public boolean isviewfromobject(view view, object object) {         return false;     } } 

fragment:

public class locationfragment extends fragment {     private static final string arg_layout_id = "page_number";      @override     public view oncreateview(layoutinflater inflater, viewgroup container,                              bundle savedinstancestate) {         view layout = inflater.inflate(r.layout.fragment_location, container, false);          return layout;     }      public static locationfragment newinstance(int selectedidforindex) {         locationfragment fragment = new locationfragment();          bundle args = new bundle();         args.putint(arg_layout_id, selectedidforindex);         fragment.setarguments(args);          return fragment;     }      public int getpagenumber() {         return getarguments().getint(arg_layout_id);     } } 

try remove method isviewfromobject in custompageradapter.

@override public boolean isviewfromobject(view view, object object) {     return false; } 

we can see comment isviewfromobject:

determines whether page view associated specific key object returned {@link #instantiateitem(viewgroup, int)}. method required pageradapter function properly.


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -