2014-01-08 58 views
4

我使用這個庫Android的PullToRefresh:https://github.com/chrisbanes/Android-PullToRefresh設置爲上拉,刷新開始清涼或恢復片段

我需要實現自動「拉刷新」的活動開始,即具有相同的視覺和功能效果就像拉下剛剛自動觸發的片段,而不是用戶的拉動手勢。你知道我能做到嗎?

編輯: 我的代碼如下

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) 
{ 
    View view = inflater.inflate(R.layout.layout_frg_summarized, group, false); 
    mPullToRefreshLayout = (PullToRefreshLayout) view.findViewById(R.id.summary_layout); 
    ActionBarPullToRefresh.from(getActivity()) 
    .allChildrenArePullable() 
    .listener(this) 
    .setup(mPullToRefreshLayout); 

    return view; 

} 


@Override 
public void onActivityCreated (Bundle savedInstanceState) 
{ 
    super.onActivityCreated(savedInstanceState); 

    //some code here 

    mPullToRefreshLayout.isRefreshing(); 

} 

@Override 
public void onResume(){ 
    super.onResume(); 

    if (mPullToRefreshLayout.isRefreshing()) { 
    mPullToRefreshLayout.setRefreshing(true); 
    } 

} 


@Override 
public void onPause(){ 
    super.onPause(); 
    mPullToRefreshLayout.setRefreshing(false); 
    if (mPullToRefreshLayout.isRefreshing()) { 
     mPullToRefreshLayout.setRefreshComplete(); 
    } 


} 

回答

6

是的,可以。

到不必調用onRefreshComplete()的能力類似,有一個setRefreshing()方法:

myRefreshableView.setRefreshing(); 

編輯:

看起來onRefreshStarted被稱爲when a user-initiated refresh is started。這意味着如果你想從代碼開始你自己的刷新,你必須更新UI並自己開始刷新。我沒有看到你的代碼開始下載,但你必須去拉那個方法的內容到另一個方法,像這樣:

@Override 
public void onRefreshStarted(View view) { 
    startDownload(); 
} 

然後,當你要開始下載在代碼(例如在onResume):

@Override 
public void onResume(){ 
    super.onResume(); 
    mPullToRefreshLayout.setRefreshing(true); 
    startDownload(); 
} 

您對isRefreshing()onActivityCreated調用不起任何作用 - 這是一個檢查,以確認UI是否是目前正處於「清新」狀態或沒有。此外,您在當前的onResume代碼中使用該檢查來執行實際上沒有任何操作的呼叫 - 如果佈局刷新,則將其設置爲刷新。

+0

另外,你是否知道[替換庫](https://github.com/chrisbanes/ActionBar-PullToRefresh)?它與Gmail和Google+應用中的「拉取至刷新」行爲相匹配,並且與ActionBar配合良好。 –

+0

我已經取代拉刷新與你建議和所有工作正常,但我仍然無法使用方法調用someRefreshableView.setRefreshing()初始刷新開始的fragmant。 –

+0

我[只是實現了這個](https://github.com/adamsp/WhatsShaking/commit/408e8dccf5ecfe958dc689904d62e513e218077b#diff-efb9421d4ffa38e80cde340c80b35b7cR183),並且我得到了相同的視覺效果 - 具體來說,我得到了在屏幕上移動的酒吧。 「加載」視圖也會短暫出現。你是否在尋找別的東西,還是你沒有得到這種行爲?也許你可以在問題中添加一些代碼。 –