Android RecyclerView.Adapter onCreateViewHolder()工作

Android RecyclerView.Adapter onCreateViewHolder()工作,第1张

概述我正在使用RecyclerView.Adapter,但我对在CreateViewHolder上的方法工作感到困惑. @Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { if(viewType==TYPE_ITEM) { View m 我正在使用RecyclerVIEw.Adapter,但我对在CreateVIEwHolder上的方法工作感到困惑.
@OverrIDepublic RecyclerVIEw.VIEwHolder onCreateVIEwHolder(VIEwGroup vIEwGroup,int vIEwType) {    if(vIEwType==TYPE_ITEM) {        VIEw mVIEw = LayoutInflater.from(vIEwGroup.getContext()).inflate(R.layout.inflate_common_item,vIEwGroup,false);        VIEwHolder vh = new VIEwHolder(mVIEw);        return vh;    } else {        VIEw mVIEw = LayoutInflater.from(vIEwGroup.getContext()).inflate(R.layout.inflate_uncommon_item,false);        VIEwHolderFooter vh = new VIEwHolderFooter(mVIEw);        return vh;    }}

所以我在我的列表中有10个项目,所以每个项目这个方法将被调用,并且每当一个新的VIEwHolder将被创建当然,它将有一次为每个视图,但现在我的问题是当我们使用ListVIEw和BaseAdapter与我们将VIEwHolder存储在标签中并使用它.我们不会为每个项目创建VIEwHolder.

@OverrIDe    public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {            MyVIEwHolder mVIEwHolder;            if(convertVIEw == null) {                    convertVIEw = inflater.inflate(R.layout.layout_List_item,null);                    mVIEwHolder = new MyVIEwHolder();                    convertVIEw.setTag(mVIEwHolder);            } else {                    mVIEwHolder = (MyVIEwHolder) convertVIEw.getTag();            }            mVIEwHolder.tvTitle = detail(convertVIEw,R.ID.tvTitle,myList.get(position).getTitle());            mVIEwHolder.tvDesc  = detail(convertVIEw,R.ID.tvDesc,myList.get(position).getDescription());            mVIEwHolder.ivIcon  = detail(convertVIEw,R.ID.ivIcon,myList.get(position).getimgResID());            return convertVIEw;    }

所以我们不会创建额外的观看者对象.请帮我理解利弊.

谢谢

解决方法 当没有RecyclerVIEw可以重用的现有视图持有者时,onCreateVIEwHolder仅创建一个新的视图持有者.所以,例如,如果您的RecyclerVIEw可以一次显示5个项目,它将创建5-6个VIEwHolders,然后自动重新使用它们,每次调用onBindVIEwHolder.

它类似于ListVIEw中的代码(检查convertVIEw是否为null,如果没有,请从标签中抓取现有的VIEwHolder),但使用RecyclerVIEw,这一切都将自动完成.

我想这是使用RecyclerVIEw的专业人士之一 – 您不必担心像VIEwVIEw那样重用VIEwHolders. con Rec RecyclerVIEw是非常可定制的,但内置功能很少 – 与ListVIEw不同,它不是很可定制的,但内置了很多功能.

总结

以上是内存溢出为你收集整理的Android RecyclerView.Adapter onCreateViewHolder()工作全部内容,希望文章能够帮你解决Android RecyclerView.Adapter onCreateViewHolder()工作所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1133121.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存