Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将新添加的数据从firebase添加到recyclerview的顶部而不是底部?请看详情_Android_Firebase_Android Recyclerview_Firebase Realtime Database - Fatal编程技术网

Android 如何将新添加的数据从firebase添加到recyclerview的顶部而不是底部?请看详情

Android 如何将新添加的数据从firebase添加到recyclerview的顶部而不是底部?请看详情,android,firebase,android-recyclerview,firebase-realtime-database,Android,Firebase,Android Recyclerview,Firebase Realtime Database,我正在开发一个应用程序,从Firebase数据库中检索一些数据 问题是每次我保存某个内容时,它都会被检索并添加到RecyclerView的底部 我想要的是,我想要将新添加的数据添加到recyclerview的顶部,而不是底部 我不知道怎么做我想做的事 请让我知道。首先,问题是关于recyclerview和您发布的数据检索代码。如果您想将新项目添加到回收器视图,请使用 mArrayList.add(position, item); notifyItemInserted(position); 对

我正在开发一个应用程序,从
Firebase
数据库中检索一些数据

问题是每次我保存某个内容时,它都会被检索并添加到
RecyclerView
的底部

我想要的是,我想要将新添加的数据添加到recyclerview的顶部,而不是底部

我不知道怎么做我想做的事


请让我知道。

首先,问题是关于
recyclerview
和您发布的数据检索代码。如果您想将新项目添加到回收器视图,请使用

mArrayList.add(position, item);
notifyItemInserted(position); 
对于要插入第一行的数据,请使用

mArrayList.add(0, item);
notifyItemInserted(0); 
然后可以使用
mRecyclerView.smoothScrollToPosition(0)
滚动到顶部。

尝试以下操作

Query lastToFirstQuery = databaseReference.orderBy("something_in_your_database").limitToLast(datasnapshot.numChildren());

lastToFirstQuery.addChildEventListener(new ChildEventListener() { 
        @Override 
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue();
            imageUID = newRequest.get("imageUIDh");
            hDescription = newRequest.get("hDescription");
            currentLat = newRequest.get("currentLat");
            currentLng = newRequest.get("currentLng");
            postedBy = newRequest.get("postedBy");
            postedAtTime = newRequest.get("postedAtTime");
            postedOnDate = newRequest.get("postedOnDate");
            utcFormatDateTime = newRequest.get("utcFormatDateTime");

        } 

        @Override 
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        } 

        @Override 
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        } 

        @Override 
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        } 

        @Override 
        public void onCancelled(DatabaseError databaseError) {
            Snackbar snackbar = Snackbar
                    .make(coordinatorLayout, databaseError.getMessage(), Snackbar.LENGTH_LONG);
            snackbar.setDuration(Snackbar.LENGTH_SHORT);
            snackbar.show();
            progressBarLoading.setVisibility(View.INVISIBLE);
        } 
    }); 
Query lastToFirstQuery=databaseReference.orderBy(“您数据库中的某物”).limitToLast(datasnapshot.numChildren());
lastToFirstQuery.addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
Map newRequest=(Map)dataSnapshot.getValue();
imageUID=newRequest.get(“imageUIDh”);
hddescription=newRequest.get(“hddescription”);
currentLat=newRequest.get(“currentLat”);
currentLng=newRequest.get(“currentLng”);
postedBy=newRequest.get(“postedBy”);
postedAtTime=newRequest.get(“postedAtTime”);
postedOnDate=newRequest.get(“postedOnDate”);
utcFormatDateTime=newRequest.get(“utcFormatDateTime”);
} 
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
} 
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
} 
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
} 
@凌驾
已取消的公共void(DatabaseError DatabaseError){
Snackbar Snackbar=Snackbar
.make(coordinatorLayout,databaseError.getMessage(),Snackbar.LENGTH_LONG);
snackbar.setDuration(snackbar.LENGTH\u SHORT);
snackbar.show();
progressBarLoading.setVisibility(View.INVISIBLE);
} 
}); 

太棒了。这就成功了!请你也看看这个好吗。Waqas的回答解决了这个问题。谢谢你的回答。你也能看一下这个吗:stackoverflow.com/questions/38023511/…拜托?。。