2016-07-18 61 views
1

我在ViewPager中有幾個片段,並且我發現片段的onActivityCreatedonCreateView都在我期望的頁面上被調用。何時應該調用片段的onActivityCreated?

例如,當ViewPager從頁面2轉換到3時,將調用頁面4的onCreateViewonActivityCreated處的片段。

我打算在onActivityCreated發起網絡請求,但它過早啓動一個屏幕。根據Android docs,onActivityCreated被稱爲「當片段的活動已被創建並且該片段的視圖層次被實例化。」這導致我相信我正確使用了該方法。

+1

在ViewPager中,相鄰視圖被加載到更平滑的加載。這就是爲什麼他們被稱爲早期 –

+1

檢查此http://stackoverflow.com/questions/26400014/how-to-handle-network-calls-inside-a-fragment可能help.try演示@ https://github.com/shomeser/view-pager-fragment – Raghunandan

回答

2

ViewPager加載下一個片段以便片段之間的平滑過渡,這就是爲什麼您的下一個片段的onCreate(),onCreateView()onResume()被調用。 所以,在你的viewPager添加onPageChangeListener,如:

yourViewPager.addOnPageChangeListener(new OnPageChangeListener{ 
    @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {} 
     @Override 
     public void onPageSelected(int position) { 
     switch(position){ 
      //your code for network operation 
     } 
    } 
    @Override 
     public void onPageScrollStateChanged(int state) {} 

});  
+0

這個技巧。你搖滾:D –

+0

謝謝。我很高興它幫助:) –

4

對於數據視圖尋呼機的順利裝載將裝載片段提前。 1.如果在第一位置(第一片段),因此它的,如果你在2或更高自動加載下一2個片段 2.Or,那麼它會加載前一個片段和下一個片段

0

正如其他已經提到,這是爲了在視圖尋呼機中平滑加載數據而完成的。你可以做的是在onAattach()或你的片段在onStart()中對用戶可見時調用你的代碼。 Android docs提供了生命週期方法的更多細節。

相關問題