java - SwipeRefresh 布局进度条即使在完成后也不会隐藏
问题描述
我正在使用 MVVM 模式,其中我使用 SwipeRefresh 布局来刷新我的布局中的回收器视图。当我拉它时,即使在方法成功完成后它也会继续刷新。
下面是我的代码:
MainActivity.java
refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
userRepository.getUserList();
}
});
用户存储库.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中调用方法。我不知道如何停止刷新过程。有人请告诉我一种停止刷新过程的方法。任何帮助,将不胜感激。
谢谢
解决方案
要禁用进度对话框添加这个,
swipeLayout.setRefreshing(false);
推荐阅读
- sql - 删除相隔不到 2 分钟的订单时出现 PostgreSQL 错误 SQL 错误 [42803]:错误:WHERE 中不允许使用聚合函数
- jsf - 为什么内联 XMLNS 会改变整个标签结构?JSF
- amp-html - AMP Validato 错误:属性“[expanded]”可能不会出现在标记“amp-accordion > section”中
- swift - 从“字符串?” 到不相关的类型 '[String : String]' 总是失败
- git - 从 GitLab 上的 Azure 存储库镜像存储库
- javascript - 我看不到重置按钮
- performance - 从 Redis SETS 获取数据是否比 HSETS 更快或更高性能?
- python - 从 scrapy import cmdline 在线运行一只蜘蛛
- python - 使用python函数式编程将csv文件导入sqllite3
- python - 下面的 C 语句是什么意思?((int*) & var)