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

因为时间原因,这里只是简单记录一下,有兴趣查看完整代码的小伙伴,请前往<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一般可以满足基本开发)

《布局悬浮——记录项目中效果》 2017-04-09_220225.png

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

《布局悬浮——记录项目中效果》 2017-04-09_220501.png

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

这里只是将MyScrollView类中的代码贴出了部分,具体的请前往<a href=”https://github.com/vincentljdong/SVSlideMonitor”>GitHub</a>下载查看。

    原文作者:JaydonLi
    原文地址: https://www.jianshu.com/p/f394048f8f80
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞