recyclerview 需要使用 addItemDecoration 给 item 添加分割线
但是在多层 list 嵌套的情况下, 每次刷新数据, 分割线可能都会重复绘制
首先尝试使用在添加前使用 removeItemDecoration, 移除掉但是并没有什么卵用
最后还是在实体 bean 的方法内添加一个用来区分刷新和首次加载的变量
- public List<ClassRelated> data;
- public List<Article.DataBean> articles;
- public List<QuestionList.DataBean> questions;
- public List<BannerBean> adData;
- public String type;
- public String title;
- public String mode;
- public int divider;
在遍历数据的时候
给数据源设置是否添加分割线
- private void jsonHomeList(String s,int divider) {
- Type type = new TypeToken<List<HomeList>>() {
- }.getType();
- mHomeLists = new Gson().fromJson(s, type);
- for (int i=0;i<mHomeLists.size();i++){
- mHomeLists.get(i).setDivider(divider);
- }
- // LogUtils.e(mHomeLists.toString());
- mRootAdapter.setNewData(mHomeLists);
- }
最后在 adapter 中判断
- // 解决分割线重复绘制问题
- if (homeList.getDivider()==0){
- rvBig.addItemDecoration(new MyLinearLayoutDivider());
- rvSmail.addItemDecoration(new MyGridDivider());
- }
具体网络请求需要自己实现
下拉刷新:
- @Override
- public void onRefresh(RefreshLayout refreshlayout) {
- mHomeTitle.setVisibility(View.INVISIBLE);
- getHomeDatas(false,1);
- }
首次加载
getHomeDatas(false,0);
来源: http://www.jianshu.com/p/e2e017decc34