2015-12-03 58 views
0

因此,基本上,我有一個片段內一個RecyclerView,內onCreateView()設置,也我已經把內部onCreateView()凌空請求與被懶惰從服務器加載新數據來更新Recycler adapter。一切工作都很好,直到我開始在頁面之間滑動太快 - 並且因爲onCreateView()被稱爲包圍當前片段而滑動的片段 - volley向服務器發送具有相同參數的多個數據 - 並且我的RecyclerView獲得了一對夫婦的相同數據時間(取決於我滑動的速度)。ViewPager +排球延遲加載=亂七八糟

我已經把這樣的:

static boolean requestAllowed = true; 

@OverRide public View onCreateView() { 

inflater etc.. 
if(requestAllowed) { 
requestAllowed = false; 
sendingVolleyRequest(); 
} 

然後內sendingVolleyRequest(),我已經把onResponse()onErrorResponse()requestAllowed = true;

但是,它通過了它,併發送請求,無論該語句(可能是線程問題),所以我只是想知道 - 是否有任何解決此問題的好方法,除了禁止發送相同的參數兩次行(如果列表在更新前完成加載後得到更新,將禁止獲取更新)。預先感謝您,並抱歉不提供代碼。

回答

3

在您的viewPager上執行onPageChangedListener()並在onPageSelected()方法發送volly請求。

+0

然而,這有幫助 - 我不得不在request方法內部放置requestAllowed條件,而不是在'onCreateView()'方法中工作並像魅力一樣工作,謝謝:) – Sekula1991