[英]Refresh data while keeping scroll position with RecyclerView
刷新 RecyclerView 中的数据时,如何保持滚动位置? 我的代码中的问题是我获取的数据来自 API,现在当我刷新数据时,我使用clear()
方法删除当前数据,并使用getData ()
方法检索新数据。
获取数据方法:
private void getData() {
JsonArrayRequest arrayRequest = new JsonArrayRequest(url_get, response -> {
JSONObject jsonObject;
for (int i = 0; i < response.length(); i++) {
try {
jsonObject = response.getJSONObject(i);
Category cat = new Category();
cat.setId(jsonObject.getString("id"));
cat.setCategory(jsonObject.getString("name"));
cat.setPvisited(jsonObject.getString("person_visited"));
cat.setCompany(jsonObject.getString("company"));
cat.setDate(jsonObject.getString("date"));
category.add(cat);
} catch (JSONException e) {
e.printStackTrace();
}
}
adapterPush(category);
refresh.setRefreshing(false);
}, error -> {
});
RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
requestQueue.add(arrayRequest);
}
分类详情:
private final ArrayList<Category> category = new ArrayList<>();
onRefresh 方法:
@Override
public void onRefresh() {
category.clear();
getData();
}
我认为 getdata() 方法有问题,当我删除
category.clear();
在我的代码中,数据被添加到字符串中,但位置仍然返回到开头。 或者也许我应该使用其他东西,比如刷新方法而不是clear()
?
category.clear();
recyclerview.notifyDataSetChanged();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.