RecyclerView的叛逆

好早之前就在用RecyclerView了,都是在项目里封装好然后就直接用了,这次需要重写然后就遇到了一个叛逆版的RecyclerView好多的具体写法都模糊了,所以在这里记录一下。

首先我想用最新版,那你就去studio的projectsetting下的moudle下的dependencies中添加library dependency 直接搜索就好,看准是com.android.suport;

1.在xml中添加

<android.support.v7.widget.RecyclerView

2.定义adapter 继承

 RecyclerView.Adapter

3.在adapter中定义内部类继承

RecyclerView.ViewHolder

在viewholder中绑定控件

4.在adapter的

onCreateViewHolder

中引入布局初始化viewholder

onBindViewHolder

中对view holder强转为自定义类型对控件进行操作

5.

RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);//除了linerlayout外还有gridlayout和瀑布流
RecyclerView.setLayoutManager(layoutManager);
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this,DividerItemDecoration.VERTICAL);
dividerItemDecoration.setDrawable();//可以放入自定义的分割线样式
RecyclerView.addItemDecoration(dividerItemDecoration);
RecyclerView.setAdapter(adapter);

遇到了一个问题

 ViewHolder views must not be attached when created. Ensure that you are not passing 'true' to the attachToRoot parameter of LayoutInflater.inflate(..., boolean attachToRoot)

当时查找了好多认为是inflate中的attachToRoot有问题,可是最后修改的是adapter中

onCreateViewHolder方法下的item视图引入的
View view = LayoutInflater.from(viewGroup.getContext())

这个from参数的context来源我之前写成了从activity传过来的context,应该用onCreateViewHolder方法中

ViewGroup参数get到的,viewGroup.getContext();从看了一下源码这个参数的getcontext得到的是recylerview.this。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值