android 广告栏效果,叫教你打造一个滑动悬浮置顶的视觉效果,给你的广告栏增加一些特色...
一个滑动悬浮置顶的View,通过自定义ScrollView来实现一个精美的固定悬浮效果
效果图:
这个特效其实没有那么复杂!
思路:
自定义ListView对头布局进行处理
自定义 RecycleView 貌似很复杂的样子
自定义Behavior 把问题复杂化了
自定义listView + PopuWindows
自定义ViewGroup ,(需要重新onLayout登方法)
自定义Scrollview,对View进行处理
思来考去,其实我们写View的时候以少量的代码打造轮子才是精髓。于是对scrollView进行处理。明显的简单方面!!!
通过广告栏的高度H和view中Y方向锁滑动的距离Y进行比较,从而对view进行处理
关键代码:
重写onTouchEvent获取滑动的距离
/**
* 重写onTouchEvent, 当用户的手在HoveringScrollview上面的时候,
*/
public boolean onTouchEvent(MotionEvent ev) {
//直接将HoveringScrollview滑动的Y方向距离回调给onScroll方法中
if (onScrollListener != null) {
onScrollListener.onMyScroll(lastScrollY = this.getScrollY());
}
switch (ev.getAction()) {
//当用户抬起手的时候, HoveringScrollview可能还在滑动,
// 所以当用户抬起手我们隔6毫秒给handler发送消息,
// 在handler处理 HoveringScrollview滑动的距离
case MotionEvent.ACTION_UP:
handler.sendMessageDelayed(handler.obtainMessage(), 20);
break;
}
return super.onTouchEvent(ev);
};
需要在Handler里面进行
/**
* 用于用户手指离开MyScrollView的时候获取MyScrollView滚动的Y距离,然后回调给onScroll方法中
*/
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
int scrollY = HoveringScrollview.this.getScrollY();
// 此时的距离和记录下的距离不相等,在隔6毫秒给handler发送消息?
if (lastScrollY != scrollY) {
lastScrollY = scrollY;
handler.sendMessageDelayed(handler.obtainMessage(), 6);
}
if (onScrollListener != null) {
onScrollListener.onMyScroll(scrollY);
}
};
};
重要的在监听回调里面做一些操作:
@Override
public void onMyScroll(int scrollY) {
LogUtils.e("yuyahao","scrollY: " +scrollY);
// TODO Auto-generated method stub
if (scrollY >= searchLayoutTop) {
if (hoveringLayout.getParent() != search01) {
search02.removeView(hoveringLayout);
search01.addView(hoveringLayout);
}
} else {
if (hoveringLayout.getParent() != search02) {
search01.removeView(hoveringLayout);
search02.addView(hoveringLayout);
}
}
}
当广告栏的高亮 大于手指所华东的高度的时候,所指定固定悬浮的View在他本身父布局的View中,否则指定一个顶部的父容器添加在里面即可。
关于更多
android 广告栏效果,叫教你打造一个滑动悬浮置顶的视觉效果,给你的广告栏增加一些特色...相关推荐
- android 自定义心电图,手把手教你打造一个心电图效果View Android自定义View
大家好,看我像不像蘑菇-因为我在学校呆的发霉了. 思而不学则殆 丽丽说得对,我有奇怪的疑问,大都是思而不学造成的,在我书读不够的情况下想太多,大多等于白想 ,所以革命没成功,同志仍需努力. 好了废话不 ...
- android 自定义心电图,手把手教你打造一个心电图效果View Android自定义View(示例代码)...
大家好,看我像不像蘑菇-因为我在学校呆的发霉了. 思而不学则殆 丽丽说得对,我有奇怪的疑问,大都是思而不学造成的,在我书读不够的情况下想太多,大多等于白想 ,所以革命没成功,同志仍需努力. 好了废话不 ...
- android 复用标题栏,Android基础---使用ToolBar教你打造一个通用的标题栏
现在项目中一般都会使用标题栏,谷歌在2014年推出了新的app bar---ToolBar,代替了以前使用的ActionBar.在做项目中会经常用到这个ToolBar,虽然用的很多,但是自己对它如何用 ...
- android 置顶窗口位置,Android 滑动悬浮置顶指南
我自己的xml代码,加上一些理解后的注释 xmlns:tools="http://schemas.android.com/tools" xmlns:app="http:/ ...
- 单独组件_阿里P8年薪百万大牛-教你打造一个Android组件化开发框架
作者简介 本篇来自 lucky_billy 的投稿,分享了他的开源组件化框架,详细地讲解框架形成的思路,希望对大家有所帮助. lucky_billy 的博客地址: http://blog.csdn.n ...
- Android RecyclerView滑动标题置顶
实现先来看看效果图(由于不会制作gif图所以) 如上图 左边可以点击切换到该标题的子item 右边可以通过滑动更换置顶标题 步骤开始: 一: 导入第三方 implementation 'com.ku ...
- 教你打造一个网红店之用户篇
我们对网红店的印象是什么呢?人.从.众,自从喜茶因为"排队"这个标签火了后,人多几乎是网红店的标配了,也就是衡量一个店面是否是网红店,首条标准就是是否人多. 像限量.稀有.特色.名 ...
- 来教你打造一个私人网盘。至于做什么用,就别多问啦
虽然打造私人网盘的目的很不好意思说出来,但是一想到以后存一些东西再也不怕莫名其妙地蒸发掉了,就开心的睡不着啊. 好嘞,回到咱们今天的主题:如何打造一个私人专属网盘?本教程将使用React & ...
- 手把手教你打造一个排队叫号系统
点击上方"业余草",选择"置顶公众号" 第一时间获取技术干货和业界资讯! 排队叫号系统在生活中处处可见,但是就这么一个系统,让你写你还不一定能完整的实现出来. ...
最新文章
- pytorch什么要设计ModuleList
- Typescript在Vue项目中的使用
- [转] 使用nginx sticky实现基于cookie的负载均衡
- 如何将你拍摄的照片转换成全景图及六面体(PTGui)
- java怎样自动调用鼠标点击屏幕固定地方_python办公自动化:让PyAutoGUI来帮你干活...
- Stanford机器学习---第三讲. 逻辑回归和过拟合问题的解决 logistic Regression Regularization
- python工资一般多少p-大神级Python工程师是怎么P图的,带你用Python玩转P图
- 下拉框怎么获取label_拼多多-「关键词自然流量快速获取」访客暴涨秘诀
- 关于软件比赛:想当太子,就不要陪别人读书
- 永中office linux卸载,永中Office Linux版官方下载_永中Office Linux版下载8.0.1331 - 系统之家...
- android开发者模式自动打开位置touch信息
- ORA-00257错误解决方法
- npm ERR network Invalid response body while trying to fetch
- 爬取新型冠状病毒的历史数据
- 9.foreign key(外键)
- 金仓数据库 KingbaseGIS 使用手册(6.8. 几何对象输入函数)
- Andoid扫码枪监听
- 【leetcode个人练习记录】 滑动窗口的问题
- 查询服务器主机CPU是几核?附应用场景展示(已解决)
- 静态HTML明星主页 HTML+CSS 周杰伦明星页面(学生课程设计网页设计制作大作业)
热门文章
- word 文档如何加密
- python数据库开发 dga_使用深度学习检测DGA(域名生成算法)——LSTM的输入数据本质上还是词袋模型...
- CentOS 7中jdk1.8安装
- SudaMod-81.0 / crDroidAndroid-8.1(android-8.1.0_r20)红米3 2018年5月3日更新
- 喝酒神器微信小程序源码 支持流量主解锁多人对战
- China Mobile announces acquisition of China Railway Communication, unveiling industry reshuffle
- 劳务派遣经营许可证怎样办理
- python3.7安装numpy库_安装了anaconda3,自带numpy库,但不能导入,问题出在哪里?
- shema SQLServer
- 机工社威武!再送你30本我的第二套数据分析书籍!