2017-03-12 10 views
1

私は私の活動の一つにリフレッシュボタンを持っています。ユーザーがそのボタンを押すたびに、SwipeRefreshLayoutのリフレッシュアニメーションを使用したいが、画面を更新するためにスワイプすることはできないようにしたい。私はこれを行うことができる方法はありますか?SwipeRefreshLayoutをスワイプできないようにするにはどうすればいいですか?

+0

を使用しています。 –

+0

@AtefHaresアニメーションが欲しいから。 –

答えて

1

あなたはswipeRefreshLayout.setEnabled(false);を試しましたか?そして、ボタンのリスナーにsetRefreshing(true)setRefreshing(false)と電話するだけで

1

試しましたか。

//button clicked... 
    //show loader, disable further pulltorefresh requests 
    //do some timed task 
    pullToRefresh.setRefreshing(true); 

    //Task done... 
    //hide loader, allow pulltorefresh requests 
    pullToRefresh.setRefreshing(false); 

私はフラグメントで使用します。

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View view = inflater.inflate(R.layout.my_fragment, container, false); 

    pullToRefresh = (SwipeRefreshLayout)view.findViewById(R.id.pullToRefresh); 
    pullToRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 

     @Override 

     public void onRefresh() { 

      refreshContent(); 


     } 

    }); 


    Button refresh = (Button) view.findViewById(R.id.refreshMethod); 
    refresh.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      refreshContent(); 

     } 
    }); 

    return view; 

} 



refreshContent() { 

    //call Async task via RetrieveFeedTask extends AsyncTask<Void, Void, String> {} 

    new RetrieveFeedTask().execute(); 

} 


class RetrieveFeedTask extends AsyncTask<Void, Void, String> { 

    private Exception exception; 
    protected void onPreExecute() { 

     recycler.clearOnScrollListeners(); 
     pullToRefresh.setRefreshing(true); 

    } 

    protected String doInBackground(Void... urls) { 

     //do task like get JSON from server 
     //try sleep for a bit 
     try { 
     Thread.sleep(2000); 
     } catch (InterruptedException error) { 
     } 

    } 



    protected void onPostExecute(String response) { 

      //do post stuff 
      //hide pullfresh, full refresh view done 
      pullToRefresh.setRefreshing(false); 


    } 

} 
+0

私はまだそれをスワイプすることができます。 –

+0

私は、タスクが完了し、プルリフレッシュを再び有効にするまで、さらなるプルリフレッシュインスタンスを無効にするプルリフレッシュローダーを表示するために上記を使用します。 – BENN1TH

+0

BENN1THはAppCompactActivityのために異なるでしょうか? –

関連する問題