2017-05-11 13 views
0

tabhost로 구현되고 parent fragment가 2 개 있고 child fragment가 사용자에게 표시 될 때 메소드를 호출하고 싶습니다. setUserVisibleHint 이는 Override 메소드입니다. 그러나 아이에게 아플 때 A 또는 B가 호출되지 않습니다.setUserVisibleHint 메서드가 tabhost 프래그먼트로 호출되지 않았습니다.

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

     if(isVisibleToUser){ 
      calltoMethod(); 

      } 



    } 

그리고 부모 단편 코드는 다음과 같습니다 :

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); 

} 

} 

답변

0

당신은 TabHost.OnTabChangeListener

현재 선택된 탭 위치에 대해 알고 사용할 수 있습니다

다음

는 사용한 코드입니다.

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

사용자가 탭을 탭한 경우에만 setOnTabChangedListner 메서드가 호출됩니다. 하지만 사용자 상호 작용없이로드 B 조각 싶어요. – shobhan