Android关于RecyclerView 局部刷新和设置高亮的问题

来源:互联网 发布:java sdk安装 编辑:程序博客网 时间:2024/05/22 15:12

Android关于RecyclerView 局部刷新和设置高亮的问题

项目里需求2级菜单,要设置recyclerview高亮,博主还是改不了ListView的使用习惯,设置新增数据的isClick属性, 通过判断数据的recyclerview的点击item事件来设置isClick = true,以下见代码

代码块

nAdapter.setOnRecyclerViewItemClickListener(new BaseQuickAdapter.OnRecyclerViewItemClickListener() {            @Override            public void onItemClick(View view, int position) {                modelLst1.get(current1).setClick(false);                modelLst1.get(position).setClick(true);                current1 = position;                nAdapter.notifyDataSetChanged();            }        });

但是刷新的是全部,item还是会跳回头部,改用了

nAdapter.notifyItemChanged(position)

开始以为满足了需求,但是没软用,还是会从头部刷新回去,博主开始求助了,经人帮助,查找了recyclerview selector,并找到一篇博文http://blog.csdn.net/moriatyhe/article/details/51067721,欣喜若狂,在item里面设置完属性,并写了selector,满足了需求。

但是怎么设置默认选中呢,博主又搜了一篇http://blog.csdn.net/u012790961/article/details/49804805, 里面有句话提醒了我

ViewGroup parent = (ViewGroup)mListView.getChildAt(i);

好吧上代码

rv_two.postDelayed(new Runnable() {            @Override            public void run() {                ViewGroup parent = (ViewGroup) rv_two.getChildAt(current2);                parent.requestFocus();            }        }, 200);

至于刷新某些数据还是差不多,通过view获取控件在设置,你可以放在adapter里面

 public void refreshItem(View view, int position) {  }

界面转换了会失焦,所以在界面唤起的时候,在得到我们保留的position参数,去postDelayed。

最近看了有篇个局部刷新的方法,DiffUtil配合RecyclerView更好~~

0 0