FirebaseRecyclerAdapter - 如何获取最后一项?

FirebaseRecyclerAdapter - How to grab the last item?

我需要获取来自 FirebaseRecyclerAdapter 的最后一个列表项 (CardView),以便为其添加额外的底部填充。

问题是 FirebaseRecyclerAdapter 的工作方式与 RecyclerView 略有不同,它没有传递给它的数组或项目列表,而是传递了 Firebase 数据库引用。

所以我不能这样做。例如:

@Override
public void onBindViewHolder(UserViewHolder userViewHolder, int position) {

   if( position == getItemCount() - 1 ){
      // Your last item
   }

}

有人能帮忙吗?

这是我的尝试,可能会对您有所帮助:

FirebaseRecyclerAdapter.getItemCount() 因为它的文档是从 RecyclerView.Adapter 复制的(仍然没有太大区别):

Returns the total number of items in the data set held by the adapter.

您可以在 populateViewHolder() 中代替 onBindViewHolder():

@Override
protected void populateViewHolder(VH viewHolder, T model, int position)
{
    if (position == getItemCount() - 1)
    {

    }
}

如果你想使用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);