我需要获取来自FirebaseRecyclerAdapter的最后一个列表项(CardView),以便为其添加额外的底部填充。
问题在于FirebaseRecyclerAdapter的工作方式与RecyclerView略有不同,并且没有传递给它的数组或项目列表,而是Firebase数据库参考。
所以我不能这样做。例如:
@Override
public void onBindViewHolder(UserViewHolder userViewHolder, int position) {
if( position == getItemCount() - 1 ){
// Your last item
}
}
有人可以帮忙吗?
答案 0 :(得分:0)
以下是我的尝试,可能会对您有所帮助:
FirebaseRecyclerAdapter.getItemCount()
因为其文档已从RecyclerView.Adapter
复制(仍然没有太大区别):
返回适配器所拥有的数据集中的项目总数。
而不是onBindViewHolder()
,您可以在populateViewHolder()
中执行此操作:
@Override
protected void populateViewHolder(VH viewHolder, T model, int position)
{
if (position == getItemCount() - 1)
{
}
}
答案 1 :(得分:0)
如果你想使用onBindViewHolder
,你可以这样做LinearLayoutManager mLinearLayoutManager = new LinearLayoutManager(getContext());
mLinearLayoutManager.setReverseLayout(true);
mLinearLayoutManager.setStackFromEnd(true);
并覆盖onBindViewHolder
@Override
public void onBindViewHolder(mViewHelper viewHolder, int position) {
if(position == 0){
viewHolder.button.setVisibility(View.VISIBLE);
}
super.onBindViewHolder(viewHolder, position);
}
和
mRecyclerView.setLayoutManager(mLinearLayoutManager);