目前我正在玩RecyclerVIEw和CardVIEw.现在我写了一个RecyclerVIEw.Adapter,我可以使用不同的内容多次显示相同的CardVIEw – 与使用BaseAdapter的ListVIEw类似.
现在我想用不同的CardVIEw-Layout(以Google Now的风格)编写一个RecyclerVIEw.我已经搜索了教程,但没有发现关于该主题的任何有用的东西.有人知道,这需要如何实施?需要做些什么来实现呢?
解决方法 要实现你想要的,你需要覆盖你的RecyclerVIEw.AdaptergetItemViewType(position)
,在哪里你会返回一个int告诉你什么样的视图将用于表示这个位置. 接下来,您将在createViewHolder (parent,viewType)
上创建不同的VIEwHolders,它将在您的情况下保留对每个不同cardlayout的引用.
然后在bindViewHolder(holder,position)
,您可以创建一个switch语句,否则的话可以通过您的可能视图列表并填写数据.
以下示例代码:
public GeneralVIEwHolder onCreateVIEwHolder(VIEwGroup vIEwGroup,int vIEwType) { GeneralVIEwHolder holder; VIEw v; Context context = vIEwGroup.getContext(); if (vIEwType == FirsT_TYPE) { v = LayoutInflater.from(context) .inflate(R.layout.first_card,vIEwGroup,false); holder = new FirstTypeVIEwHolder(v); //Of type GeneralVIEwHolder } else { v = LayoutInflater.from(context) .inflate(R.layout.second_card,false); holder = new SecondTypeVIEwHolder(v); } return holder;}public voID onBindVIEwHolder(GeneralVIEwHolder vIEwHolder,int i) { if(getItemVIEwType(i)==FirsT_TYPE) { FirstTypeVIEwHolder holder1 = (FirstTypeVIEwHolder)vIEwHolder; } else { SecondTypeVIEwHolder holder1 = (SecondTypeVIEwHolder)vIEwHolder; }}public int getItemVIEwType (int position) { //Some logic to kNow which type will come next; return Math.random()<0.5 ? FirsT_TYPE : SECOND_TYPE;}总结
以上是内存溢出为你收集整理的android – RecyclerView与不同的Cardlayouts全部内容,希望文章能够帮你解决android – RecyclerView与不同的Cardlayouts所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)