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 enter image description here

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

Popular posts from this blog

How to connect android app to App engine -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

php - display validation error message next to the textbox in codeigniter -