Android 自定义布局竖向的ViewPager的实现
效果图:
这个自定义控件涉及到的知识点:
自定义ViewGroup中onMeasure和onLayout的写法
弹性滚动Scroller的用法
速度轨迹追踪器VelocityTracker的用法
如何处理滑动事件冲突
dispatchTouchEvent:(外部拦截)告诉此ScrollLayout的父布局,什么时候该拦截触摸事件,什么时候不该拦截触摸事件
onInterceptTouchEvent:(内部拦截)ScrollLayout告诉自己什么时候要拦截内部子View的触摸事件,什么时候不要拦截内部子View的触摸事件
处理触摸滑动的思路:
- 先实现布局跟着手指的滑动而滑动 scrollBy
- 处理好边界条件(这次的处理边界,仅适用于低速滑动情况下)
- 如果是快速滑动VelocityTracker,必须再次考虑边界问题(上面考虑的边界问题不适用于快速滑动情况)
- 如果是低速滑动,要根据手指滑动方向和布局滑动的距离一起做判断,来确定,页面该滑动到那个页面,这里用到了弹性滑动Scroller
- 难点来了:算法,
//即确定当前显示的子控件的位置,//确定弹性滑动滑向那个位置 if (Math.abs(velocityY) > criticalVelocityY) {//当手指滑动速度快时,按照速度方向直接翻页 // 重点二、快速滑动时,如何判断当前显示的是第几个控件,并且再次包含边界判断(必须包含边界判断,因为前面的边界判断,只适用于低速滑动时) if (shouZhiXiangXiaHuaDong) { if (currentPage > 1) {//★★★★★★★★边界限制,防止滑倒第一个,还继续滑动,注意★(currentPage-2) mScroller.startScroll(0, getScrollY(), 0, childHeight * (currentPage - 2) - getScrollY()); currentPage--; } } else { if (currentPage < childCount) {//★★★★★★★边界限制,防止滑倒最后一个,还继续滑动,注意★currentPage mScroller.startScroll(0, getScrollY(), 0, childHeight * currentPage - getScrollY()); currentPage++; } } Log.e("eee", currentPage + "");
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机Android 自定义布局竖向的ViewPager的实现
后端开发2023-05-31
Android自定义ViewGroup实现可滚动的横向布局(2)
后端开发2022-06-06
Android自定义ViewGroup横向布局(1)
后端开发2022-06-06
Android自定义实现BaseAdapter的优化布局
后端开发2022-06-06
Android自定义View实现竖向滑动回弹效果
后端开发2024-04-02
Android实现简单的自定义ViewGroup流式布局
后端开发2022-12-09
Android简单实现自定义流式布局的方法
后端开发2022-06-06
Android自定义RadioGroupX实现多行多列布局
后端开发2024-04-02
Android怎么自定义View实现竖向滑动回弹效果
后端开发2023-06-30
Android自定义ViewGroup之实现FlowLayout流式布局
后端开发2022-06-06
Android布局——Preference自定义layout的方法
后端开发2022-06-06
Android编程实现Toast自定义布局简单示例
后端开发2022-06-06
android自定义RadioGroup可以添加多种布局的实现方法
后端开发2022-06-06
Android不使用自定义布局情况下实现自定义通知栏图标的方法
后端开发2022-06-06
Android自定义View Flyme6的Viewpager指示器
后端开发2022-06-06
Android自定义布局实现仿qq侧滑部分代码
后端开发2022-06-06
Android自定义ViewPager实现个性化的图片切换效果
后端开发2022-06-06
如何在Android中利用TextView实现自定义竖排
后端开发2023-05-31
Android自定义格式显示Button的布局思路
后端开发2022-06-06
Android布局之LinearLayout自定义高亮背景的方法
后端开发2022-06-06
咦!没有更多了?去看看其它编程学习网 内容吧