我想创建具有异类行的回收站视图。 一些行将具有imageview,一些将具有5个textviews,一些将具有编辑文本,一些将具有嵌套的回收器视图等。 没有模式。怎么做?
我研究和发现的内容: - AirBnb环氧树脂。
请提供一些有关如何进一步处理此事的建议。
答案 0 :(得分:1)
如果你有类似的话:
public class MyRecyclerAdapter extends RecyclerView.Adapter<CustomRecycleViewHolder>
然后您必须覆盖名为onCreateViewHolder
的方法。此方法有2个参数...一个是ViewGroup parent
,另一个是int viewType
。
您可以在创建新viewType
之前检查Holder
来更改整行。
例如:
if(viewType == 0){
return new MyViewHolder(context,layoutInflater.inflate(R.layout.my_view_holder,null,false));
} else {
return new My2ViewHolder(context,layoutInflater.inflate(R.layout.my_2_view_holder,null,false));
}
请不要忘记每个ViewHolder必须扩展CustomRecycleViewHolder
。
答案 1 :(得分:0)
您可以按照建议实现自己的ViewType。但是,如果您有多个异构行,我建议使用环氧树脂是一个很好的解决方案。环氧树脂非常灵活,并提供了许多功能来立即构建异构的RecyclerView。我已经在多个大型应用程序中使用过它,并且效果很好。
除了创建和跟踪大量ViewHolders外,您只需创建模型并像使用它们一样
headerModel
.title("My Photos")
.description("My album description!")
.addTo(this);
new PhotoModel()
.id(photo.id())
.url(photo.url())
.addTo(this);