android Scrollview嵌套PinnedHeaderExpandableListView并且可以实现悬浮窗
来源:互联网 发布:js获取相同class的div 编辑:程序博客网 时间:2024/06/17 16:51
1.需要实现的效果
在网上找了很久没有好的可以借用的,就想着自己动手写个吧!
主要实现逻辑:
首先测量出悬浮窗上面布局的高度,然后判断scrollview是否滑动到了这个高度,如果已经到了就把最大的高度设置成布局的高度,看代码:
@Overrideprotected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) { CrollY = scrollY; //判断如果滑动的距离大于view的高度就直接设置成view的高度 if (scrollY >= mViewHeight){ scrollY =mViewHeight; isRun = false; } super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);}
然后再跟进滑动的距离进行拦截事件,根据滑动距离判断是上滑还是下拉,看代码:
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { switch (ev.getAction()){ case MotionEvent.ACTION_DOWN: dowmX = ev.getX(); dowmY = ev.getY(); mViewHeight = mView.getHeight(); scrollY = dowmY; break; case MotionEvent.ACTION_MOVE: float X = ev.getX(); float Y = ev.getY(); float xx = X - dowmX; float yy = Y - dowmY; Log.i("TAG","Y----->"+Y); Log.i("TAG","-----》getScorll : "+getScrollY()); if (Math.abs(yy)>Math.abs(xx)&& isScroll){// return true;//scrollview执行滑动 Listview不滑动// return false;//listView滑动 scrollview不滑动 if (!isRun && isTop){ return false; } else if (!isRun && !isTop){ if (scrollY < Y && (Y - scrollY) > SCROLLLIMIT){ //往下拉 isTop = false; isRun = true; return true; }else { if (getScrollY() == mViewHeight){ return false; } } } } break; case MotionEvent.ACTION_UP: break; } return super.onInterceptTouchEvent(ev); }
然后再使用的时候需要设置下:
scrollView.setView(lin_view);//设置高度为屏幕的高度ViewGroup.LayoutParams params = plvService.getLayoutParams();params.height = height;plvService.setLayoutParams(params);plvService.requestLayout();lv_content_view.setLayoutParams(params);lv_content_view.requestLayout();scrollView.isScroll(true);注意:设置子view的高度非常重要,不然无法实现滑动效果
最后的效果:
源码下载地址:源码地址
0 0
- android Scrollview嵌套PinnedHeaderExpandableListView并且可以实现悬浮窗
- Android可以拖动的悬浮窗实现
- android开发实现微博正文效果、顶部悬浮、ScrollView嵌套ListView
- 重写ScrollView实现ScrollView可以添加悬浮条
- Android ScrollView嵌套ScrollView,并且嵌套的ScrollView超过屏幕部分
- Android 仿QQ好友列表分组悬浮PinnedHeaderExpandableListView
- android listView 全部展开,并且点击Item有效,可以用scrollView包裹,实现整体滑动
- Android中scrollview嵌套webview的实现
- Android 悬浮窗实现
- Android ScrollView向上滑动控件顶部弹出悬浮框并且淡入淡出
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- Android ScrollView向上滑动控件顶部悬浮效果实现
- android ScrollView向上滑动 控件顶部悬浮效果实现
- sql查询排名以及springmvc实现
- 八.MUI
- 在清华南都中看到的关于博士生给研究生的建议,觉得很好
- 深入理解Java中的final关键字
- hihocoder#1501 : 风格不统一如何写程序
- android Scrollview嵌套PinnedHeaderExpandableListView并且可以实现悬浮窗
- nl 命令
- leetcode 83. Remove Duplicates from Sorted List
- Python logging日志(2)
- 最小二乘法
- 明天开始写论文了--解决主要矛盾,中庸
- bzoj3294 [Cqoi2011]放棋子
- Android进程间的通信
- Java利用递归思想遍历指定目录,获取所有的文件