java - onCreateView for tab being called whenever selecting adjacent tab? -
i having weird issue oncreateview being called every time navigate adjacent tab in tablayout. here code:
news_feed.java:
private static tablayout tablayout; @override public void oncreate(bundle savedinstancestate) { tablayout = (tablayout) findviewbyid(r.id.tab_layout); tablayout.addtab(tablayout.newtab().settext("public")); tablayout.addtab(tablayout.newtab().settext("friends")); tablayout.addtab(tablayout.newtab().settext("my tabs")); tablayout.settabgravity(tablayout.gravity_fill); final viewpager viewpager = (viewpager) findviewbyid(r.id.pager); final pageradapter adapter = new pageradapter (getsupportfragmentmanager(), tablayout.gettabcount()); viewpager.setadapter(adapter); viewpager.addonpagechangelistener(new tablayout.tablayoutonpagechangelistener(tablayout)); tablayout.setontabselectedlistener(new tablayout.ontabselectedlistener() { @override public void ontabselected(tablayout.tab tab) { viewpager.setcurrentitem(tab.getposition()); } @override public void ontabunselected(tablayout.tab tab) { } @override public void ontabreselected(tablayout.tab tab) { } }); } publictab.java:
@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { system.out.println("creating new view"); fragmentview = inflater.inflate(r.layout.public_tab, container, false); progressoverlay = fragmentview.findviewbyid(r.id.progress_overlay); androidutils.animateview(progressoverlay, view.visible, 0.9f, 200); getpublicposts(progressoverlay, fragmentview); return fragmentview; } i have 3 other tabs publictab.java different layouts. not sure why oncreateview being called frequently. thought in lifecycle, oncreateview invoked 2 reasons: 1. when first initialize tabs 2. if come out onstop or onpause method.
however, when switching between tabs next actual tab, println message called above , not want because don't want update view of fragment frequently: during first 2 reasons above. know why happening? appreciated! thanks!
use setoffscreenpagelimit android documentation:
public void setoffscreenpagelimit (int limit)set number of pages should retained either side of current page in view hierarchy in idle state. pages beyond limit recreated adapter when needed
the default value set 1.
Comments
Post a Comment