语言表达能力有限,我们先来看下效果:
好了,如果你明白了我说的效果,那就继续往下看吧!
思路是这样的:
首先,我们要自定义一个HoverScrollView,继承ScrollView,通过接口把onScrollChanged(int l, int t, int oldl, int oldt)方法里scrollview移动的Top值暴露出来,然后在Activity根据scrollview的Top值以及需要悬浮的布局mHoverLayoutTop距离上边缘的size,通过两者的比较,当Top的值大于等于size时把mHoverLayoutTop设置VISIBLE以及INVISIBLE。
这里有必要先介绍下Left,Top,Right,Bottom这几个值的含义:
下面是暴露出scrollview滑动时的Top值的代码,这里很明显我们开个接口
开接口一般我们记住以下几个步骤:
创建接口,声明接口带参数的抽象方法,声明一个接口类型的引用来指向一个实现给接口的对象,对这个引用赋值,最后别忘记给接口传递的参数赋值(去调用接口的方法)。
下面是自定义HoverScrollView的代码:
public class HoverScrollView extends ScrollView {
private OnScrollListener onScrollListener;
public interface OnScrollListener{
public void onScroll(int scrollY);
};
public HoverScrollView(Context context) {
super(context, null, 0);
// TODO Auto-generated constructor stub
}
public HoverScrollView(Context context, AttributeSet attrs) {
super(context, attrs, 0);
// TODO Auto-generated constructor stub
}
public HoverScrollView(Context context, Attri