gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:38:54 26 4
gpt4 key购买 nike

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

下面是我的代码:

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中,我正在另一个 Activity MainActivity中调用方法。我没有得到任何方法如何停止刷新过程。请有人让我知道一种停止刷新过程的方法。任何帮助将不胜感激。

谢谢

最佳答案

要禁用进度对话框,请添加此内容,

swipeLayout.setRefreshing(false);

关于java - SwipeRefresh 布局进度条即使完成后也不会隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57271255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com