Android开发艺术探索三 View 事件体系

一:基础知识

        View:所有控件的基类

        1.View的位置参数:

        2.MotionEvent和TouchSlop:

                MotionEvent: 手指触摸屏幕的一系列事件

                TouchSlop:滑动的最小距离,和设备系统有关

        3.VelocityTracker, GestureDetetor , Scroller:

                VelocityTracker: 速度追踪

                GestureDetetor: 手势检测,多用于双击(滑动监听多用于 onTouchEvent )

                 Scroller:弹性滑动对象,配合View的computeScroller 完成

二:View 的滑动

        1.scrollTo/scrollBy:

                左向右滑动,为负值,上向下滑动为负值,反之,正值。

                只改变内容,不改变实际位置。

        2.使用动画

                Translation
                 可以改变 View 真实位置 

        3.改变布局参数

                LayoutParams: marginLeft 

        4.各种滑动方式对比

                scrollTo/scrollBy : 操作简单,适合对View内容的滑动

                动画:适用于没有交互的View, 和实现复杂的动画效果

                改变布局参数:操作复杂,适合有交互的View

三:弹性滑动(将大的滑动分成若干次小的滑动,在一定时间段内完成)

        1.Scroller:配合view的 computeScroll完成,每次重绘view

        2.动画

        3.使用延时策略:通过handler 或 view 的 postDelayed 完成

四:View的事件分发机制

        传递规则:由外向内       dispathTouchEvent - onInterceptTouchEvent - onTouchEvent   

五:滑动冲突

        常见场景:

                1.外部滑动和内部滑动方向不一致

                2.外部滑动和内部滑动方向一致

                3.   1 和 2 的嵌套使用

        处理规则:

                场景1 水平方向和竖直方向的距离差

                场景2 和 场景3 业务上找突破点

        解决方式:

                1.外部拦截(常用)

                2.内部拦截

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值