Android RecyclerView返回到位置0

Android RecyclerView返回到位置0,android,firebase,firebase-realtime-database,android-recyclerview,Android,Firebase,Firebase Realtime Database,Android Recyclerview,我有一个firebase数据库的RecyclerView 当我点击该项目时,应该会显示一个底部工作表对话框 当底部板材对话框显示回收器返回到位置0时 这是来自适配器的底部工作表调用 holder.comment.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CommentBottom

我有一个firebase数据库的RecyclerView 当我点击该项目时,应该会显示一个底部工作表对话框 当底部板材对话框显示回收器返回到位置0时 这是来自适配器的底部工作表调用

   holder.comment.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CommentBottomSheetDialog dialog=new CommentBottomSheetDialog(context,user,items.get(position));
                dialog.show(fragmentManager,dialog.getTag());
            }
        });
这是底部的板材载荷数据代码

       private void loadList() {
        ref.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.hasChildren()){
                    list=new ArrayList<>();
                    for (DataSnapshot d:dataSnapshot.getChildren()) {
                        Comments comments=d.getValue(Comments.class);
                        list.add(comments);
                    }
                    CommentsAdapter adapter=new CommentsAdapter(context,list);
                    rec.setAdapter(adapter);
                }

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

private void loadList(){
ref.addListenerForSingleValueEvent(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
if(dataSnapshot.hasChildren()){
列表=新的ArrayList();
对于(DataSnapshot d:DataSnapshot.getChildren()){
Comments Comments=d.getValue(Comments.class);
增加(评论);
}
CommentsAdapter=新的CommentsAdapter(上下文,列表);
rec.setAdapter(适配器);
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
注意:底部工作表也从firebase加载数据
recyclerView.layoutManager.scrollToPosition(位置)

只需创建一个带有首选项SNAP TO START的平滑滚动条:

RecyclerView.SmoothScroller SmoothScroller=新建LinearSmoothScroller(上下文){
@重写受保护的int getVerticalSnapPreference(){
将LinearSmoothScroller.SNAP_返回到_START;
}
};
现在设置要滚动到的位置,如果要滚动到顶部,请设置0

smoothScroller.setTargetPosition(位置);
并将新创建的平滑滚动条作为

layoutManager.startSmoothScroll(smoothScroller);

提供的信息不足以让人产生想法。请添加更多信息以提供帮助。您的问题是什么?我遇到了一个问题,即当底部工作表显示如何防止此情况时,回收器返回到位置0。我遇到了一个问题,即当底部工作表显示如何防止此情况时,回收器返回到位置0。您需要以某种方式保留底部工作表的状态。在这里,在您的情况下,您应该保留RecyclerView的当前滚动索引,以防止重置滚动。也许这篇文章能有所帮助