最近在使用RecyclerViewde制作一个聊天界面的时候,页面总是显示不出来Item,仔细检查代码之后终于发现了问题,简单的记录一下:
我想要建立的是纵向item的RecyclerView,刚开始使用(RecyclerView)的却是横向布局的LinearLayout,导致每次生成的Item会铺满整个屏幕,所以每次Adapter调用getItemcount()之后不会再调用onCreateView()\onBindView(),所以Item无法建立。将使用(RecyclerView)的线性布局改为垂直线性布局之后,果然出现了一个Item。
但是一个Item显然也是不正确的(我的数据可以建立多个Item),经过对代码的检查发现是Item布局的height属性设置为了“match_parent",所以一个Item已经铺满了整个屏幕,将之修改为”wrap_content“之后达到了想要的效果。(RecyclerView为纵向排列,item的layout的height不能使用match_parent,否则只能产生一个Item;RecyclerView为横向排列,item的layout的width不能使用match_parent,否则只能产生一个Item;)
最后总结一下RecyclerView的Adapter创建Item的过程:
RecyclerView的全过程:
建立Item、RecyclerView布局->定义Adapter、定义layoutManager->添加、设置Adapter、layoutManager->Adapter调用getItemCount()->(getItemCount>0)onCreateViwholder()->OnBindViewHolder()->显示Item->getItemCount()....后面循环产生Item添加显示。
本文仅作为个人学习参考,有误请指出。