Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        在16天前关闭。
                                                                                            
                
        
我有一个带有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) {

            }
        });
    }



注意:最下面的表格还会从Firebase加载数据

最佳答案

只需使用首选项SNAP_TO_START创建SmoothScroller:

RecyclerView.SmoothScroller smoothScroller = new LinearSmoothScroller(context) {
  @Override protected int getVerticalSnapPreference() {
    return LinearSmoothScroller.SNAP_TO_START;
  }
};


现在,您设置要滚动到的位置。如果要滚动到顶部,请在此处设置0。

smoothScroller.setTargetPosition(position);


并将新创建的平滑滚动器传递给LayoutManager

layoutManager.startSmoothScroll(smoothScroller);

08-03 19:01