无意间看到个需求,要求列表页的第一行放大
效果图:
主要方法是继承RecyclerView重写onScrollStateChanged和onScrolled方法
前者是确定滑动后第一个item可以完全显示,后者是在滑动时进行item改变
主要方法如下
@Override
public void onScrollStateChanged(int state) {
super.onScrollStateChanged(state);
if(state == 0){
postion = linearLayoutManager.findFirstVisibleItemPosition();
view = linearLayoutManager.findViewByPosition(postion);
top = view.getTop();
if(viewHeight == 0){
viewHeight = view.getHeight();
}
if(top == 0){//不用偏移
return;
}
else if(-top < viewHeight/2){ //遮挡小于1/2
offset = top;
}
else {
offset = viewHeight+