我已经在我的项目中实现了RecyclerView,在onPostExecute方法上,我已将Decoration添加到我的recyclerview中,但是当刷新时,Decoration会增加。 我的代码:
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
progressDialog.dismiss();
FeedsAdapter adapter = new FeedsAdapter(context, feedItems);
recyclerView.setLayoutManager(new LinearLayoutManager(context));
recyclerView.addItemDecoration(new VerticalSpace(20));
recyclerView.setAdapter(adapter);
}
答案 0 :(得分:1)
您可能需要先删除装饰,然后再添加新装饰。
每次调用onPostExecute
方法时,它将向RecyclerView添加新的ItemDecoration(这就是为什么空间增加的原因)。
只需在添加之前尝试将其删除,例如通过removeItemDecoration(referenceToItemDecoration)
或removeItemDecorationAt(0)
方法。
答案 1 :(得分:0)
您不必每次运行http调用(或执行postExecute的任何操作)时都创建一个新的适配器,您只需要更新feedItems并调用NotifyDataSetChanged()。
现在,您将在每次运行postExecute时重新创建适配器并添加垂直空间,因此也许只需在oncreate中添加适配器和verticalSpace,然后仅在postExecute中更新数据集,然后notifyDataSetChanged