2017-05-11 5 views
0

J'ai un fragment parent qui est implémenté avec tabhost et ayant deux fragments enfant fragment A et B, et je veux appeler une méthode lorsque le fragment enfant est visible par l'utilisateur, j'ai utilisé setUserVisibleHint qui est une méthode Override. mais il n'est jamais appelé au cours de la fragement de l'enfant A ou B apparaît à l'utilisateur.méthode setUserVisibleHint jamais appelée avec fragment tabhost

Ce qui suit est le code qui ont utilisé:

@Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
     super.setUserVisibleHint(isVisibleToUser); 
     Log.d("setUserVisibleHint***called",""+isVisibleToUser); 

     if(isVisibleToUser){ 
      calltoMethod(); 

      } 



    } 

et le code fragment Parent est:

public class ParentFragment extends Fragment{ 

private TabHost planTabHost; 
LinearLayout tabMainLayout; 
private static View plansView; 

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
plansView = inflater.inflate(R.layout.plansfragment, container, false); 
planTabHost = (TabHost)plansView. findViewById(android.R.id.tabhost); 

    planTabHost.setup(); 

      planTabHost.addTab(planTabHost.newTabSpec("tab1").setIndicator("A").setContent(R.id.Afragment)); 
      planTabHost.addTab(planTabHost.newTabSpec("tab2").setIndicator("B").setContent(R.id.Bfragment)); 



planTabHost.setCurrentTab(1); 

} 

} 

Répondre

0

Vous pouvez utiliser TabHost.OnTabChangeListener

savoir sur la position actuelle de l'onglet sélectionné.

planTabHost.setOnTabChangedListener(new OnTabChangeListener() { 
       @Override 
       public void onTabChanged(String arg0) {   
        Log.i("Selected Tab", "index::" + planTabHost.getCurrentTab()); 
       }  
      }); 
+0

La méthode setOnTabChangedListner est appelée uniquement lorsque l'utilisateur appuie sur l'onglet. mais je veux charger le fragment B sans interaction de l'utilisateur. – shobhan