实现淘宝滑动RecycleView改变ToolBar透明度
通过监听item距离顶部的位置,进行相应的透明度改变。
代码如下:
mRlv.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
private int mDistanceY;
@Override
public void onScrollChanged() {
//控制tab透明度 //mManager mManager = new LinearLayoutManager(getActivity());
if (mManager.findFirstVisibleItemPosition() == 0) {
mDistanceY = -mRlv.getChildAt(0).getTop();
//完全变色的高度
int changeHeight = 500;
//当滑动的距离 <= toolbar高度的时候,改变Toolbar背景色的透明度,达到渐变的效果
if (mDistanceY <= changeHeight) {
float alpha = (float) mDistanceY / changeHeight;
mMtoolbar.setAlpha(alpha);
if (alpha < 0.01) {
mMtoolbar.setEnabled(false);
} else {
mMtoolbar.setEnabled(true);
}
} else {
//将标题栏的颜色设置为完全不透明状态 //mMtoolbar表示Toolbar对象
mMtoolbar.setAlpha(1);
mMtoolbar.setEnabled(true);
}
} else {
if (mMtoolbar.getAlpha() != 1f) {
//将标题栏的颜色设置为完全不透明状态
mMtoolbar.setAlpha(1);
mMtoolbar.setEnabled(true);
}
}
}
});