我有一个带有项目列表的回收者视图。我需要以编程方式滚动到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)
在该位置检索项目的正确方法是什么?