美文网首页
获取ScrollView滑动距离

获取ScrollView滑动距离

作者: 选一个昵称这么难 | 来源:发表于2017-08-30 16:23 被阅读371次

一 :低版本的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值就是有滑动距离决定的,具体根据项目要求来

相关文章

网友评论

      本文标题:获取ScrollView滑动距离

      本文链接:https://www.haomeiwen.com/subject/fbxxjxtx.html