RecyclerView返回位置0

问题描述 投票:0回答:2

我有一个带有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加载数据

android firebase firebase-realtime-database android-recyclerview recycler-adapter
2个回答
0
投票
使用类似recyclerView.layoutManager.scrollToPosition(position)

0
投票
只需使用首选项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);

© www.soinside.com 2019 - 2024. All rights reserved.