一,GridView上滑加载时实现局部刷新不是全局刷新
每次加载数据都调用rvPushwork.setAdapter(accountBOEAdapter);时都是实现整个页面的全部刷新,比如:在滑到某一个item是,上滑加载更多数据时,会跳到第一个item,显然,这不是我们想要的结果,我们想要的是滑动到某一个item时,加载更多的情况下,当前item位置不变
account_boe_listBean = new Gson().fromJson(response, GetAccount_Boe_ListBean.class);
if (CurrentIndex == 1) {
boeList.clear();
}
if (accountBOEAdapter == null)
accountBOEAdapter = new AccountBOEAdapter();
boeList.addAll(account_boe_listBean.getData());
if(CurrentIndex == 1){
rvPushwork.setAdapter(accountBOEAdapter);
}
accountBOEAdapter.notifyDataSetChanged();
主要调用的就是
accountBOEAdapter.notifyDataSetChanged();来实现刷新的
二,GridView中每个item中有checkbox,点击checkbox时,会有好几个item显示已选中,滑动页面时会调用多次
setOnCheckedChangeListener事件
解决办法:
viewHolder.cbImg.setOnCheckedChangeListener(null);
if (boeList.get(i).getCheck()) {
viewHolder.cbImg.setChecked(true);
} else {
viewHolder.cbImg.setChecked(false);
}
还有一个问题,就是选中的item,在加载数据时,选中的item不变
用到的就是
if (boeList.get(i).getCheck()) {
viewHolder.cbImg.setChecked(true);
} else {
viewHolder.cbImg.setChecked(false);
}
先在实体类中默认全部Check为false,点击选中的时候设置为true,即可