使用RecyclerView进行滑动监听
@BindView(R.id.activity_myaccelate_recycler)
RecyclerViewmRecyclerView;
@BindView(R.id.activity_myaccelate_statusbar)
LinearLayoutliStatusbar;//状态栏布局
@BindView(R.id.activity_myaccelate_toptitle)
RelativeLayoutrlTopTitle;//顶部标题栏布局
@BindView(R.id.activity_myaccelate_line)
ViewrlTopTitleLine;//顶部标题栏布局分割线
@BindView(R.id.activity_myaccelate_leftbtn)
TextViewbtnLeft;//标题栏-左返回键
@BindView(R.id.activity_myaccelate_title)
TextViewtvTitle;//标题栏-标题
@BindView(R.id.activity_myaccelate_tvright)
TextViewbtnRight;//标题栏-右按钮
private int overallXScroll =0;
private int height =640;// 滑动开始变色的高,真实项目中此高度是由广告轮播或其他首页view高度决定
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView,int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView,int dx,int dy) {
super.onScrolled(recyclerView, dx, dy);
int alpha =0;
overallXScroll =overallXScroll + dy;// 累加y值 解决滑动一半y值为0
if (overallXScroll <=0) {//设置标题的背景颜色
rlTopTitle.setBackgroundColor(Color.argb(0,252,252,252));
liStatusbar.setBackgroundColor(Color.argb(0,252,252,252));
tvTitle.setTextColor(Color.argb(255,255,255,255));
btnRight.setTextColor(Color.argb(255,255,255,255));
btnLeft.setBackgroundResource(R.drawable.title_whiteleft_selector);
rlTopTitleLine.setVisibility(View.GONE);
}else if (overallXScroll >0 &&overallXScroll <=height) {//滑动距离小于banner图的高度时,设置背景和字体颜色颜色透明度渐变
float scale = (float)overallXScroll /height;
alpha = (int) (255 * scale);
rlTopTitle.setBackgroundColor(Color.argb(alpha,252,252,252));
liStatusbar.setBackgroundColor(Color.argb(alpha,252,252,252));
tvTitle.setTextColor(Color.argb(alpha,0,0,0));
btnRight.setTextColor(Color.argb(alpha,0,0,0));
btnLeft.setBackgroundResource(R.drawable.title_left_selector);
rlTopTitleLine.setVisibility(View.GONE);
}else {
if (alpha <255) {
rlTopTitle.setBackgroundColor(Color.argb(255,252,252,252));
liStatusbar.setBackgroundColor(Color.argb(255,252,252,252));
tvTitle.setTextColor(Color.argb(255,0,0,0));
btnRight.setTextColor(Color.argb(255,0,0,0));
}
btnLeft.setBackgroundResource(R.drawable.title_left_selector);
rlTopTitleLine.setVisibility(View.VISIBLE);
}
}
});
网友评论