2013-11-26 35 views
6

私のアプリでchrisbanes's Android-PullToRefreshを使用しています。初めてpulltorefresh機能を無効にする方法はありますか?

初めてのフラグメントの起動時に、リストが空で項目がバックグラウンドでダウンロードされているときに、pulltorefresh機能を無効にする必要があります。 この場合(リストは空です)、ユーザーは下にスワイプして、「更新するためにリリース」というプログレスバーが表示されます。私はpulltorefresh機能を有効にしたいすべての項目をロードした後

..

どのように?

答えて

1

デフォルトでは、リストのアダプタを埋めるときに、ポスト実行のasyncTaskでプル・トゥ・リフレッシュとイネーブルを無効にします。

+0

ありがとうございました。しかし、問題は、プルレットリフレッシュ機能を無効にする方法です。 – vsvydenko

+0

私の編集した答えをチェックしてください。 –

+0

フラグメントの最初の開始時に、listviewは空です。フラグメントが初めて起動すると、非同期タスクでデータをロードし始めます。この瞬間(リストは空です)、ユーザーはスワイプダウンしてプログレスバーとテキスト "Release to refresh"(pulltorefreshlistviewの標準ヘッダー)を表示できます。この場合、このヘッダは必要ありません。アイテムをロードした後にこのヘッダを表示する必要があります。 最初のページがロードされるまで、ユーザはリフレッシュすることができません。 – vsvydenko

-1

希望同じ問題を持つこのヘルプ誰か行うことができます:あなたは、カウントを入れる場合にのみを更新するメソッドを呼び出すことができ

mRefreshableListView.setMode(PullToRefreshBase.Mode.DISABLED);//to disable the pull functionality 
mRefreshableListView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);//or whatever you want 
0

をこのカウントは0(ゼロ)より大きく、スクロールイベントのリスナーを設定してカウントを0(ゼロ)に設定するので、ユーザーがリストをスクロールするたびにカウントは0(ゼロ)に設定されますリストは一番上に着き、再び上にスクロールするメソッドが呼び出されます。

mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
       @Override 
       public void onRefresh() { 
        if (countDelay > 0) { 
         countDelay = 0; 
         refresh(); 
        } else { 
         mSwipeRefreshLayout.setRefreshing(false); 
         countDelay++; 
        } 
       } 
      }); 
mSwipeRefreshLayout.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { 
       @Override 
       public void onScrollChanged() { 
        countDelay = 0; 
       } 
      }); 
関連する問題