热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

因为时间原因,这里只是简单记录一下,有兴趣查看完整代码的小伙伴,请前往Git

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

《布局悬浮——记录项目中效果》 Animation.gif

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

《布局悬浮——记录项目中效果》 SVSlideMonitor.gif

这个效果实现起来不难,简单说一下实现思路:

1、监听滚动时的Y值变化

2、判断当前位置在顶部时,添加悬浮布局

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

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

主布局文件

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

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

java代码

《布局悬浮——记录项目中效果》 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类中的代码贴出了部分,具体的请前往GitHub下载查看。


推荐阅读
  • BeautifulSoup4 是一个功能强大的HTML和XML解析库,它能够帮助开发者轻松地从网页中提取信息。本文将介绍BeautifulSoup4的基本功能、安装方法、与其他解析工具的对比以及简单的使用示例。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 详解MyBatis二级缓存的启用与配置
    本文深入探讨了MyBatis二级缓存的启用方法及其配置细节,通过具体的代码实例进行说明,有助于开发者更好地理解和应用这一特性,提升应用程序的性能。 ... [详细]
  • 本文详细介绍了如何在本地环境中安装配置Frida及其服务器组件,以及如何通过Frida进行基本的应用程序动态分析,包括获取应用版本和加载的类信息。 ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • 本文介绍了如何通过创建自定义 XML 文件来修改 Android 中 Spinner 的项样式,包括颜色和大小的调整。 ... [详细]
  • GitHub基础指南:项目代码的部署与管理
    GitHub是一个广泛使用的开源代码托管平台,支持版本控制与协作开发。本文将指导开发者如何在GitHub上高效地管理和分享项目代码,包括项目的创建、代码的上传与下载等基本操作。 ... [详细]
  • 在Android应用开发中,当在MenuItem中通过app:actionLayout属性使用Switch控件时,可能会遇到空指针异常的问题。本文将探讨该问题的原因及解决方案。 ... [详细]
  • 本文介绍了两个重要的Node.js库——cache-content-type和mime-types,它们在处理HTTP响应头时非常有用。cache-content-type是基于mime-types构建的,并且实现了缓存机制以提高性能。 ... [详细]
  • Python脚本实现批量删除多种类型文件的扩展名
    本文介绍了一个Python脚本,用于批量处理并移除指定目录下不同格式文件(如png、jpg、xml、json、txt、gt等)的文件扩展名。该方法通过递归遍历文件夹中的所有文件,并对每个文件执行重命名操作。 ... [详细]
  • 为帮助编程爱好者更好地掌握Python和Go语言的核心技能,我们特别提供两本精选图书的免费赠阅机会。《易懂的Python算法指南》适合所有希望提高算法理解能力的读者,《Go语言编程从入门到精通》则面向对Go语言感兴趣的初学者及有一定基础的开发者。 ... [详细]
  • 本文详细记录了一位求职者在搜狐进行的两次面试经历,包括面试的具体时间、面试流程、技术问题及个人感受。通过本次面试,作者不仅获得了宝贵的经验,还成功拿到了搜狐的录用通知。 ... [详细]
  • 使用IntelliJ IDEA高效开发与运行Shell脚本
    本文介绍了如何利用IntelliJ IDEA中的BashSupport插件来增强Shell脚本的开发体验,包括插件的安装、配置以及脚本的运行方法。 ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • 深入解析Java并发之ArrayBlockingQueue
    本文详细探讨了ArrayBlockingQueue,这是一种基于数组实现的阻塞队列。ArrayBlockingQueue在初始化时需要指定容量,因此它是一个有界的阻塞队列。文章不仅介绍了其基本概念和数据结构,还深入分析了其源码实现,包括各种入队、出队、获取元素和删除元素的方法。 ... [详细]
author-avatar
JAYBRYANT-24
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有