因为时间原因,这里只是简单记录一下,有兴趣查看完整代码的小伙伴,请前往<a href="https://github.com/vincentljdong/SVSlideMonitor">GitHub</a>下载查看。
之前项目中需要实现界面滑动在顶部时,其中某一块布局悬浮,看一下效果图:
Animation.gif
当需要悬浮的布局滑动到标题栏时,悬浮在顶部,向下滑时恢复原样。
在来看一下简单实现后的效果图:
SVSlideMonitor.gif
这个效果实现起来不难,简单说一下实现思路:
1、监听滚动时的Y值变化
2、判断当前位置在顶部时,添加悬浮布局
3、否则就直接移除布局
4、重写onTouchEvent,对手势抬起时界面还在滑动时做相关处理
具体的还是来看看代码:
<b>悬浮布局文件</b>
2017-04-09_212629.png
<b>主布局文件</b>
2017-04-09_212648.png
布局文件具体代码就不需要贴出来了,很简单。
<b>java代码</b>
2017-04-09_213527.png自定义ScrollView,实现三个构造方法
-
第一个构造方法就是我们平常在普通代码中新建view对象的时候
xxx x=new xxx(this); -
第二个构造就是我们在xml中添加一个view,将自定义的view在布局中引用,这样就把我们自定义的view添加进布局中,如果我们添加一些属性,margin,height,witch等,这些属性会存放在AttributeSet参数中
-
第三个构造方法比第二个多出一个defStyleAttr的int类型的值,这是一个自定义属性的参数,第三个构造方法是不会被系统默认调用的,而是我们自己自己显示调用,比如在第二个构造方法中调用第三个函数,并将第三个参数设为0(设置为0一般可以满足基本开发)
定义一个接口回调,用来回调Y值
2017-04-09_220501.png
重写onTouchEvent方法做相关逻辑操作
这里只是将MyScrollView类中的代码贴出了部分,具体的请前往<a href="https://github.com/vincentljdong/SVSlideMonitor">GitHub</a>下载查看。
网友评论