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);
我需要获取来自 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);