2013-04-18 4 views
6

탭 표시기가있는 viewPager가 있습니다. ViewPager는 FragmentPagerAdapter가있는 setAdaper입니다.FragmentPagerAdapter의 현재 조각 업데이트

FragmentPagerAdapter의 내부 구조가 어떻게 작동하는지 거의 이해하지 못했습니다. 이웃 노드가 아직 보이지 않더라도 이웃 조각이 다시 시작되었음을 알았습니다 (OnResume이 호출 됨).

OnResume에 업데이트 방법을 넣으면 조각이 최신 상태가되면 업데이트됩니다.

광고 배너 새로 고침
나는 왼쪽으로 한 번 또는 오른쪽으로 한 번 swipping로 보내 주시면 때 업데이트 할 바닥 글에 설정 한 광고 배너를 원한다. 이웃 조각들은 재창조되지 않습니다 (좋은 것). 그러나 onResume은 이미 배너 새로 고침을 피하는 것으로 호출됩니다. loadBannerAd 메서드는 OnResume() 메서드에 있습니다.



어떻게 호출 할 수 있습니다 만 조각 내부의 방법으로 현재의 조각 방법 loadBannerAd()?

편집 : 이미 mViewPager.setOnPageChangeListener()에 대해 알고 있습니다.

OnPageChangeListener mOnPageChangeListener = new ViewPager.OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int position) { 
     // this method can be called before the fragment 's onCreateView() 
     } 

     .... 
    }; 

그러나 단편이 아직 작성되지 않은 경우 위험 할 수 있습니다. Activty에서 단편이 생성되었는지 여부를 관리하면 그 단편이 무효화됩니다.

enter image description here

답변

6

당신은 단순히 사용

mViewPager.setOnPageChangeListener(new OnPageChangeListener() { 

      @Override 
      public void onPageSelected(int index) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onPageScrolled(int arg0, float arg1, int arg2) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onPageScrollStateChanged(int arg0) { 
       // TODO Auto-generated method stub 

      } 
     }) 

은 그럼 당신은 onPageSelected(int index)에서 일어나는 처리 할 수 ​​있습니다.

+0

감사합니다 Warpzit, 나는이 방법에 대해 알고있었습니다. 거기에 더 우아한 뭔가가있다 (내 말은 조각 자체 내에서 호출 된 메서드를 의미) –

+0

@ raychenon 아니, 나는 검색하고 모든 tryed하지만 이것은 실제로 꽤 우아합니다. onPageSelected가 호출 될 때마다 프래그먼트에서 메소드를 호출 할 수 있습니다. – Warpzit

관련 문제