Android自定义View和事件分发
AndroidConqueror
奋斗不止,量变引起质变
展开
-
View的事件分发机制
要想控制View对点击事件的响应,就需要了解View的事件分发机制。而View的事件分发机制无非就是研究复写下面三个方法,只要明白它们的作用原理,就可以随心所欲的写出满足自己意愿的交互代码:1.dispatchTouchEvent View有一个方法叫dispatchTouchEvent,这个方法用于进行事件的分发,只要点击事件传到了这个View,那么这个方法就会被调用。 这个方法的伪代码是:p原创 2016-08-25 17:24:17 · 430 阅读 · 0 评论 -
使用Scroller实现View的弹性滑动
View有scrollTo、scrollBy方法,但是滑动是瞬时的,比较僵硬。可以通过Scroller来实现View的弹性滑动。ScrollView就有smoothScrollTo和smoothScrollBy方法,这两个方法实现的就是弹性滑动的效果,它们内部实际也是用了Scroller。Scroller的典型用法:原创 2016-08-08 20:07:12 · 2034 阅读 · 0 评论 -
View的坐标系以及X、rawX、translationX、scrollX的区别
简单介绍一下View的坐标系:view的位置由left、top、right、bottom四个属性决定,这几个坐标可以通过getLeft()、getTop()、getRight()、getBottom()获取。注意这四个坐标是相对坐标,即相对于父容器的坐标。当view发生移动时,这几个坐标是不变的。从Android 3.0开始,增加了几个参数:x、y、translationX原创 2016-08-08 15:43:29 · 10693 阅读 · 1 评论 -
android面包屑导航栏的实现
面包屑导航的效果如下:点击面包屑上标蓝的文字,可以直接返回到对应的级别。比如点击“第2层”,就能直接返回到第2层下的目录,而无须依次点返回。面包屑导航的原理是通过FragmentTransaction去实现的,下面简单介绍一下实现原理。页面分为两部分:顶部的自定义导航栏view和下方的ListFragment,点击fragment的item会进入下一层L原创 2016-06-10 15:12:17 · 6468 阅读 · 2 评论 -
ListView的item实现滑动、点击、长按不冲突
要实现这样的一个功能:一个ListView,能向左滑动出现删除按钮,点击item进入详情,长按item进入编辑也就是说要做到滑动、点击、长按三个动作互不干扰,滑动时间长了不能触发长按,滑动后手松开不能触发点击。刚开始我用的方法是:item的view复写onTouchEvent + item setOnItemClickListener + item set原创 2016-03-23 19:47:22 · 4506 阅读 · 1 评论