如何在加载 recyclerview 时显示进度条并在完成后隐藏它?
How do i show the progress bar while recyclerview is loading and hide it when done?
我有一个 recyclerview,它显示 volley 请求的数据。我正在使用 handler().postDelayed 来显示进度条 4 秒,但它与我的 recyclerview 不一致,因为有时需要超过 4 秒才能从 api 获取数据并将其显示在 recyclerview 和有时需要的时间更少。
但我希望进度条 运行 只要 recyclerview 还不可见。
这是我的代码
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
stopProgressbar();
}
},4000);
new Handler().post(new Runnable() {
@Override
public void run() {
loadData();
}
});
不需要单独的处理程序来处理进度条。
一旦你得到volly的回应,你就可以停止了。您应该从那里调用 stopProgressbar();
方法。
当且仅当您遇到一些主线程问题时,将其写在 runOnUIThread()
方法下。
从 onResponse()
和 onErrorResponse()
方法调用 stopProgressbar()
。
举个例子:
public void loadData()
{
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET,
url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
// Parse JSON data and add to list
...........
...........................
// Hide progressbar
stopProgressbar();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
// Hide progressbar
stopProgressbar();
}
});
..................
..........................
}
我有一个 recyclerview,它显示 volley 请求的数据。我正在使用 handler().postDelayed 来显示进度条 4 秒,但它与我的 recyclerview 不一致,因为有时需要超过 4 秒才能从 api 获取数据并将其显示在 recyclerview 和有时需要的时间更少。 但我希望进度条 运行 只要 recyclerview 还不可见。
这是我的代码
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
stopProgressbar();
}
},4000);
new Handler().post(new Runnable() {
@Override
public void run() {
loadData();
}
});
不需要单独的处理程序来处理进度条。
一旦你得到volly的回应,你就可以停止了。您应该从那里调用 stopProgressbar();
方法。
当且仅当您遇到一些主线程问题时,将其写在 runOnUIThread()
方法下。
从 onResponse()
和 onErrorResponse()
方法调用 stopProgressbar()
。
举个例子:
public void loadData()
{
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET,
url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
// Parse JSON data and add to list
...........
...........................
// Hide progressbar
stopProgressbar();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
// Hide progressbar
stopProgressbar();
}
});
..................
..........................
}