Android:如何根据适配器位置在recyclerview中检索特定行或项目的视图?

时间:2017-05-17 08:36:45

标签: android animation mobile android-recyclerview recycler-adapter

我有一个带有项目列表的回收者视图。我需要以编程方式滚动到Recycler视图中的特定项目的位置这是我通过使用

实现的
final RecyclerView.SmoothScroller smoothScroller = new
                LinearSmoothScroller(getActivity()) {
                    @Override protected int getVerticalSnapPreference() {
                        return LinearSmoothScroller.SNAP_TO_START;
                    }
                };
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                    @Override
                    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                        super.onScrollStateChanged(recyclerView, newState);

                        if (newState == RecyclerView.SCROLL_STATE_IDLE ) {
                            Log.e ("Recycler :", "Scroll changed IDLE");
                            if (recyclerView.getChildAt(pos) != null) {
                                View view = recyclerView.getChildViewHolder(recyclerView.getChildAt(pos)).itemView;
                                Log.e ("Child :", "Not null");
                                view.startAnimation(fadeOutAnimation);
                                //recyclerView.getChildAt(pos).setAnimation(fadeInAnimation);
                            } else {
                                Log.e ("Child : ", "Null");
                            }
                        }
                    }

                    @Override
                    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                        Log.e ("OnScrolled", "Scrol");
                    }
                });

但是在滚动到那个特定位置之后,我需要将Fade动画添加到该特定视图中,但这并没有成功。

所以如果我想给第3个项目添加fadein动画,那么最初它会滚动到那个位置,它不会动画。

如果我想动画到第3个位置,它将动画到回收器视图中的第3个可见项而不是第3个项适配器

recyclerView.getChildAt(pos)

在该位置检索项目的正确方法是什么?

0 个答案:

没有答案