如何在recyclerView的顶部放置新项目?

时间:2017-04-10 09:44:14

标签: android firebase firebase-realtime-database android-recyclerview

我正在向我的数据库添加内容( Firebase ),这些内容可能会被加载到我的recyclerview中。但新内容始终显示在recyclerview的底部。有没有办法让它们出现在顶部而不是出现在底部

2 个答案:

答案 0 :(得分:0)

如果您想在顶部显示新项目,只需在您的活动中添加此代码即可。 您需要反转您的RecyclerView,然后您完全需要此代码段。它不需要任何修改或任何特殊库。在LinearLayoutManager上工作非常简单。

 LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
        mLayoutManager.setReverseLayout(true);
        mLayoutManager.setStackFromEnd(true);
        recyclerView.setLayoutManager(mLayoutManager);

首先,您需要创建一个LinearLayoutManager对象并使用“setReverseLayout(true)”和“setStackFromEnd(true)”方法来反转并在最后添加项目。

答案 1 :(得分:0)

我终于解决了这个问题我需要做的就是将一个整数变量初始化为0,将它与模型类的对象一起添加到Firebase数据库中,最后通知插入到的项目适配器。代码将更好地解释

int position = 0;
ArrayList<Places> data = new ArrayList<>();
LinearLayoutManager lg = new LinearLayoutManager(this);

然后最终的代码就是这个

valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
Places content = ds.getValue(Places.class);
    data.add(position,content);
adapter = new YourAdapter(data, getApplicationContext);
      recyclerview.setLayoutManager(new Line);
      recyclerview.setAdapter(adapter);
      adapter.notifyItemInserted(position);
       adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
     // Handle error code here
   }
     });