布局悬浮——记录项目中效果

因为时间原因,这里只是简单记录一下,有兴趣查看完整代码的小伙伴,请前往GitHub下载查看。
之前项目中需要实现界面滑动在顶部时,其中某一块布局悬浮,看一下效果图:


Animation.gif

当需要悬浮的布局滑动到标题栏时,悬浮在顶部,向下滑时恢复原样。
在来看一下简单实现后的效果图:


布局悬浮——记录项目中效果_第1张图片
SVSlideMonitor.gif

这个效果实现起来不难,简单说一下实现思路:
1、监听滚动时的Y值变化
2、判断当前位置在顶部时,添加悬浮布局

3、否则就直接移除布局
4、重写onTouchEvent,对手势抬起时界面还在滑动时做相关处理
具体的还是来看看代码:
悬浮布局文件


2017-04-09_212629.png

主布局文件
2017-04-09_212648.png

布局文件具体代码就不需要贴出来了,很简单。

java代码

布局悬浮——记录项目中效果_第2张图片
2017-04-09_213527.png

自定义ScrollView,实现三个构造方法

  • 第一个构造方法就是我们平常在普通代码中新建view对象的时候
    xxx x=new xxx(this);

  • 第二个构造就是我们在xml中添加一个view,将自定义的view在布局中引用,这样就把我们自定义的view添加进布局中,如果我们添加一些属性,margin,height,witch等,这些属性会存放在AttributeSet参数中

  • 第三个构造方法比第二个多出一个defStyleAttr的int类型的值,这是一个自定义属性的参数,第三个构造方法是不会被系统默认调用的,而是我们自己自己显示调用,比如在第二个构造方法中调用第三个函数,并将第三个参数设为0(设置为0一般可以满足基本开发)

布局悬浮——记录项目中效果_第3张图片
2017-04-09_220225.png

定义一个接口回调,用来回调Y值


布局悬浮——记录项目中效果_第4张图片
2017-04-09_220501.png

重写onTouchEvent方法做相关逻辑操作

这里只是将MyScrollView类中的代码贴出了部分,具体的请前往GitHub下载查看。

你可能感兴趣的:(布局悬浮——记录项目中效果)