ListView:
//ListVie滑動觸動的接口
public AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int
totalItemCount) {
if (getScrollY() <= 0) {
countyRelative.getBackground().setAlpha(0);
} else if (getScrollY() > 0 && getScrollY() <= 300) {
float scale = (float) getScrollY() / 300;
float alpha = (255 * scale);
countyRelative.getBackground().setAlpha((int) alpha);
} else {
countyRelative.getBackground().setAlpha(255);
}
}
};
public int getScrollY() {
View c = storeListView.getChildAt(0);
if (c == null) {
return 0;
}
int firstVisiblePosition = storeListView.getFirstVisiblePosition();
int top = c.getTop();
return -top + firstVisiblePosition * c.getHeight();
}
RecyclerView:
//標題欄漸變
//滑動的距離
disY += dy;
//toolbar的高度
int toolbarHeight = 300;
if (disY <= toolbarHeight) {
float scale = (float) disY / 300;
float alpha = (255 * scale);
relativeLayout.getBackground().setAlpha((int) alpha);
} else {
relativeLayout.getBackground().setAlpha(255);
}
disY 默認爲0;