android - How to avoid calling 'onCreated()' method of near tabs when i switch to some tabs? -
i'm working on application in eclipse have 5 tab , have spent time have big problem :
when 1 of tabs activated next tab , prev tab loading , oncreated() method called don't need need calling oncreated() method when switching tabs
this project files
mainactivity.java
package info.androidhive.tabsswipe; import info.androidhive.tabsswipe.adapter.tabspageradapter; import ir.zinoo.mankan.r; import android.app.actionbar; import android.app.actionbar.tab; import android.app.fragmenttransaction; import android.graphics.color; import android.graphics.drawable.colordrawable; import android.view.menu; import android.view.menuitem; import android.widget.toast; import android.os.bundle; import android.support.v4.app.fragmentactivity; import android.support.v4.view.viewpager; import android.content.sharedpreferences; public class mainactivity extends fragmentactivity implements actionbar.tablistener { private viewpager viewpager; private tabspageradapter madapter; private actionbar actionbar; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // initilization viewpager = (viewpager) findviewbyid(r.id.pager); actionbar = getactionbar(); madapter = new tabspageradapter(getsupportfragmentmanager()); viewpager.setadapter(madapter); actionbar.sethomebuttonenabled(false); actionbar.setnavigationmode(actionbar.navigation_mode_tabs); //adding tabs (string tab_name : tabs) { actionbar.addtab(actionbar.newtab().settablistener(this)); } actionbar.setstackedbackgrounddrawable(new colordrawable(color.parsecolor("#333333"))); actionbar.setbackgrounddrawable(new colordrawable(color.parsecolor("#333333"))); viewpager.setonpagechangelistener(new viewpager.onpagechangelistener() { @override public void onpageselected(int position) { // on changing page // make respected tab selected actionbar.setselectednavigationitem(position); } @override public void onpagescrolled(int arg0, float arg1, int arg2) { } } @override public void onpagescrollstatechanged(int arg0) { } }); } @override public void ontabreselected(tab tab, fragmenttransaction ft) { } @override public void ontabselected(tab tab, fragmenttransaction ft) { // on tab selected // show respected fragment view viewpager.setcurrentitem(tab.getposition()); } @override public void ontabunselected(tab tab, fragmenttransaction ft) { } public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } } tabpageradapter.java class
package info.androidhive.tabsswipe.adapter; import info.androidhive.tabsswipe.bmifragment; import info.androidhive.tabsswipe.calorifragment; import info.androidhive.tabsswipe.fatfragment; import info.androidhive.tabsswipe.kamarfragment; import info.androidhive.tabsswipe.ostokhanfragment; import info.androidhive.tabsswipe.otherfragment; import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; public class tabspageradapter extends fragmentpageradapter { public tabspageradapter(fragmentmanager fm) { super(fm); } @override public fragment getitem(int index) { switch (index) { case 0: // top rated fragment activity return new bmifragment(); case 1: // games fragment activity return new calorifragment(); case 2: // movies fragment activity return new kamarfragment(); case 3: // movies fragment activity return new ostokhanfragment(); case 4: // movies fragment activity return new fatfragment(); case 5: // movies fragment activity return new otherfragment(); } return null; } @override public int getcount() { //get item count - equal number of tabs return 6; } } now question how avoid calling on created method of other tabs when in switch special tab?
you can't. can set number of "pre-cache" tabs in view pager
viewpager.setoffscreenpagelimit(3); but minimum number load 1 , forward, equivalent:
viewpager.setoffscreenpagelimit(1); in order able swipe.

Comments
Post a Comment