2016-10-18 1 views
0

ViewPager, Fragments 등으로 내 애플리케이션 탭에서 구현했습니다. 모든 것이 정상적으로 작동합니다. 하지만 다음 탭으로 스 와이프 한 후 어떤 기능이 실행되는지 알고 싶습니다. 사용자가 다음 화면으로 스 와이프 할 때 일부 데이터를 새로 고침해야하기 때문입니다.안드로이드 - TabLayout, 단편 - 스 와이프 후에 어떤 기능이 실행됩니까?

내 활동에이 기능을 가지고 :

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    rootview = inflater.inflate(R.layout.activity_main_sensors_p, container, false); 
    return rootview; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    update_data(); 
    display_items(); 
} 
+0

가지고 너는 onResume 또는 onStart을 시도 하는가? –

+0

BTW viewPager가 항상 다음 조각을 유지하거나 리비전 4에서 offScreen을 설정하기 때문에 조각의 가시성을 추적하는 것이 더 좋습니다.이 방법으로 viewPager가 매번 조각을 만들도록 할 수 있습니다. mViewPager.setOffscreenPageLimit (2); –

+0

'Fragment # getUserVisibleHint()'는 조각이 현재 뷰 호출기에서 선택되었는지 여부를 알려줍니다. –

답변

0
YourFragment extends Fragment { 

    @Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if (this.isVisible()) { 
     .... 
    } else { 
     .... 
    } 
    } 
} 
0

당신은 당신의 ViewPagerOnPageChangeListener 리스너를 설정하려고 호출기 어댑터의 현재 위치에 accrding 조치를 수행 할 수 있습니다

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
    } 

    @Override 
    public void onPageSelected(int position) { 
     // do action accroding to the viewPager position 
    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 
    } 
}); 
관련 문제