Fragment 中的 Recycleview 最后一项会被截掉一半,因此添加一个脚布局使其能显示完整。
1. 定义布局
//普通布局的type
static final int TYPE_ITEM = 0;
//脚布局
static final int TYPE_FOOTER = 1;
2. 修改getItemCount
@Override
public int getItemCount() {
return cartSceVos.size()+1; //返回数据项+1(加上脚布局)
}
3. 修改 getItemType
@Override
public int getItemViewType(int position) {
if (position +1 == getItemCount())
return TYPE_FOOTER; //最后一项则显示为脚布局
else {
return TYPE_ITEM;
}
}
4. 创建ViewHolder时分类型
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == TYPE_ITEM){ //如果为普通布局
return new CartAdapter.ViewHolder(mContext, mLayoutInflater.inflate(R.layout.cart_sce_item, null));
}else if (viewType == TYPE_FOOTER){ //脚布局
View view = View.inflate(mContext, R.layout.cart_rcv_footer, null);
FootViewHolder footViewHolder = new FootViewHolder(view);
//自己定义FoodViewHolder
return footViewHolder;
}
return null;
}
OK.