Android-PullToRefreshRecyclerView icon indicating copy to clipboard operation
Android-PullToRefreshRecyclerView copied to clipboard

怎么直接调用刷新方法,不需要滑动才能回调

Open newbiechen1024 opened this issue 8 years ago • 2 comments

请问有没有直接开启刷新动画的方法,不需要滑动才能刷新

newbiechen1024 avatar Jun 12 '16 06:06 newbiechen1024

同求手动刷新方法。。。

Simon-CN avatar Dec 20 '16 15:12 Simon-CN

这个问题解决了,作者的刷新是使用Google自带的SwipeLayout的。SwipeLayout本身没有手动刷新的方法,所以只能自己弄个手动刷新。逻辑是,手动显示刷新View(就是显示刷新的小圆圈),然后进行数据加载等处理,当处理完成之后再手动将刷新View隐藏。

附上个人的解决办法:

     private PullToRefreshRecyclerView mRecyclerView;
     
     protected void onCreate(@Nullable Bundle savedInstanceState) {

          ...前面的省略

            //因为在onCreate()方法中,只是创建了SwipeLayout对象,并没有开始进行绘制,setRefreshing()方法是无效的,所以必须当SwipeLayout绘制完毕的时候,才能使用setRefreshing(),所以使用post()
            mRecyclerView.post(new Runnable() {
               @Override
               public void run() {
                   //显示刷新View
                   mRecyclerView.setRefreshing(true);
               }
            });

            //处理数据,这里举个例子
           new AsyncTask<Void,Void,Void>(){
            @Override
            protected Void doInBackground(Void... params) {
                try {
                    //异步处理数据加载
                    Thread.sleep(2000); //举例
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return null;
            }

            @Override
            protected void onPostExecute(Void aVoid) {
                super.onPostExecute(aVoid);

                //手动关闭刷新View
                mRecyclerView.setRefreshing(false);
                
                mRecyclerView.setOnRefreshComplete();
                mRecyclerView.onFinishLoading(true, false);
            }
        }.execute();
     }

newbiechen1024 avatar Dec 22 '16 13:12 newbiechen1024