SwipeRefresh布局进度条即使完成也不会隐藏

时间:2019-07-30 12:05:31

标签: java android

我正在使用MVVM模式,其中使用SwipeRefresh布局刷新布局中的回收站视图。当我拉动它时,即使方法成功完成,它也会继续刷新。

下面是我的代码:

MainActivity.java

refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {

            userRepository.getUserList();

        }
    });

UserRepository.java

public void getUserList(){

          Retrofit retrofit = RetrofitClient.getInstance();
          ApiService apiService = retrofit.create(ApiService.class);

          Call<List<User>> userList = apiService.getUser();

          userList.enqueue(new Callback<List<User>>() {
              @Override
              public void onResponse(Call<List<User>> call, final Response<List<User>> response) {

                  Completable.fromAction(new Action() {
                          @Override
                          public void run() throws Exception {

                              if(response.body() != null) {

                                  List<User> list = response.body();

                                  for (int i = 0; i < list.size(); i++) {

                                      String id = list.get(i).get_id();
                                      String names = list.get(i).getName();
                                      String age = list.get(i).getAge();

                                      User user = new User(id,names,age);

                                      userDb.userDao().Insert(user);

                                  }
                              }
                          }
                      }).subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(new CompletableObserver() {
                            @Override
                            public void onSubscribe(Disposable d) {

                            }

                            @Override
                            public void onComplete() {

                                Toast.makeText(context,"Data inserted",Toast.LENGTH_SHORT).show();
                            }

                            @Override
                            public void onError(Throwable e) {

                                Toast.makeText(context,e.getMessage(),Toast.LENGTH_LONG).show();
                            }
                        });

              }

              @Override
              public void onFailure(Call<List<User>> call, Throwable t) {
                  Toast.makeText(context,t.getMessage(),Toast.LENGTH_LONG).show();
              }
          });

}

方法获取列表在另一个类 UserRepository 中,并且我在另一个活动 MainActivity 中调用方法。我没有任何方法可以停止刷新过程。请有人让我知道一种停止刷新过程的方法。 任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

要禁用进度对话框,请添加它,

swipeLayout.setRefreshing(false);