2016-06-21 106 views
0

我以編程方式調用pull-to-refresh作爲奇妙地解釋here在我的片段onResume()中的一行內容。這是我的代碼:調用Chris Banes以無編程方式刷新以編程方式刷新

private PullToRefreshScrollView panelScrollView; 

@Override 
public void onResume() { 
    panelScrollView.setRefreshing();    
    super.onResume(); 
} 

這將刷新我的片段,但有反彈(就像用戶拉動和釋放),這也是一個不好的用戶體驗。
我的問題:

  1. 我可以得到相同的刷新沒有反彈
  2. 爲什麼片段的super.onResume()一旦到達前臺就刷新片段?爲什麼我需要首先撥打PullToRefreshScrollView.setRefreshing()
+0

拉到刷新原生支持。你不需要第三方庫。 [見此](https://developer.android.com/training/swipe/add-swipe-in​​terface.html) – Renjith

+1

使用SwipeRefreshLayout Senti。 –

+0

非常感謝!但這是與第三方拉到刷新集成的「遺留代碼」,這種工作方式很有效,我首先想嘗試與其他拉到刷新解決方案集成。 另外我還是不明白我的問題2,爲什麼'onResume()'沒有我的顯式調用沒有刷新片段。 – Senti

回答

1

首先,我會建議使用支持拉刷新非常容易使用。 https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

  1. 文檔說以下

    如果活動希望只顯示進度動畫,它應該 呼叫setRefreshing(真)https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html#isRefreshing()

  2. 拉的目的刷新的是用戶特別想要刷新數據。你試圖做的是一種反模式。但是在理想的情況下,如果您實施拉動刷新,您不想在用戶完成操作之前重新加載。這樣用戶就可以決定移動數據不刷新,而是連接到wifi時快速刷新。

作爲在調用片段onResume時實現刷新的補充,您可以創建一個從Fragment擴展的新類。

public class AutoRefreshFragment extends Fragment { 
... 
    public void onResume() { 
      panelScrollView.setRefreshing(); 
    } 
... 
} 

,而是延伸定期片段使用extends AutoRefreshFragment剛創建的超類。

+0

感謝您的回覆!請看我上面的評論。 – Senti

+0

感謝您的更新,但這是我在我的原始代碼片段中所做的。或者我有什麼不同? – Senti

+0

確實類似但沒有超類。 – QVDev

相關問題