android – RecyclerView与不同的Cardlayouts

android – RecyclerView与不同的Cardlayouts,第1张

概述我想做什么 目前我正在玩RecyclerView和CardView.现在我写了一个RecyclerView.Adapter,我可以使用不同的内容多次显示相同的CardView – 与使用BaseAdapter的ListView类似. 现在我想用不同的CardView-Layout(以Google Now的风格)编写一个RecyclerView.我已经搜索了教程,但没有发现关于该主题的任何有用的东西 我想做什么

目前我正在玩RecyclerVIEw和CardVIEw.现在我写了一个RecyclerVIEw.Adapter,我可以使用不同的内容多次显示相同的CardVIEw – 与使用BaseAdapter的ListVIEw类似.

现在我想用不同的CardVIEw-Layout(以Google Now的风格)编写一个RecyclerVIEw.我已经搜索了教程,但没有发现关于该主题的任何有用的东西.有人知道,这需要如何实施?需要做些什么来实现呢?

解决方法 要实现你想要的,你需要覆盖你的RecyclerVIEw.Adapter getItemViewType(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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1131671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存