/**
* created by flynn on 2019/10/28
* 针对recycleview平滑滚动到指定位置
*/
public class TopicRvLayoutManager extends LinearLayoutManager {
public float mDefaultPixel;
public TopicRvLayoutManager(Context context, float defaultPixel) {
super(context);
this.mDefaultPixel = defaultPixel;
}
@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, final int position) {
LinearSmoothScroller smoothScroller = new LinearSmoothScroller(recyclerView.getContext()) {
// 返回:滑过1px时经历的时间(ms)。
@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return mDefaultPixel / displayMetrics.densityDpi;
}
};
smoothScroller.setTargetPosition(position);
startSmoothScroll(smoothScroller);
}
}