一 :低版本的scrollview不能直接获取到scrollview滑动的距离,这需要我们对scrollview做一些定制
public class CustomScrollView extends ScrollView {
public interface OnScrollListener {
void onScroll(int l, int t, int oldl, int oldt);
}
//我们定义的监听
private OnScrollListener onScrollListener;
public CustomScrollView(Context context) {
super(context);
}
public CustomScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
//在这个方法里为我们的监听赋值
if (onScrollListener != null) {
onScrollListener.onScroll(l, t, oldl, t);
}
}
//设置监听
public void setOnScrollListener(OnScrollListener onScrollListener) {
this.onScrollListener = onScrollListener;
}
}
使用:
((CustomScrollView) mView.findViewById(R.id.content)).setOnScrollListener(new CustomScrollView.OnScrollListener() {
@Override
public void onScroll(int l, int t, int oldl, int oldt) {
System.out.println("t "+t);
System.out.println("oldt "+oldt);
});
二:获取到滑动的距离后,我们可以做的事有很多,比如可以动态改变标题栏的透明度
(1)首先为标题栏设置背景
drawable = getActivity().getResources().getDrawable(R.drawable.bg_more_top);
rl_top.setBackgroundDrawable(drawable);//这个rl_top就是标题栏view
(2)
drawable.setAlpha(int alpha);//这个int值就是有滑动距离决定的,具体根据项目要求来
网友评论