自定义View添加点击事件
2017-11-24 20:26
169 查看
最近一直在学习自定义控件越学习越觉得自定义控件厉害。也越发的想掌握其原理。虽然GitHub上各种各样的轮子都有,但是万一没有呢?依靠轮子是不靠谱的!!!自己掌握原理,才是最靠谱的!!!当我用自定义控件画出来想要的效果时,突发奇想。点了一下,发现没反应。于是想设置监听事件。我的画的控件充满屏幕,我只是想点击局部。但是直接设置监听的话,监听的是整个控件。一时间有点懵逼。于是Google找思路。大致的思路如下:1.自定义点击事件接口
//自定义点击事件接口 interface HomeViewClick { fun onViewCilik() }2.创建,设置自定义的点击监听的方法
//设置自定义的点击事件监听 fun setOnHomeViewClick(homoViewClick: HomeViewClick) { mHomoViewClick = homoViewClick }3.重写onTouchEvent()方法需要注意的是:返回true(表示控件自己处理触摸事件),返回false则是交给父控件处理。当返回false时,MotionEvent.ACTION_MOVE和MotionEvent.ACTION_UP都不会触发4.根据MotionEvent判断用户的动作
MotionEvent.ACTION_DOWN 》》》 按下
MotionEvent.ACTION_MOVE 》》》 移动
MotionEvent.ACTION_UP 》》》 抬起
5.当用户抬起手指时,判断其坐标是否在指定范围内
6.在指定范围内时,用接口实例调用接口中的方法
override fun onTouchEvent(event: MotionEvent): Boolean {when (event.action) {//手指抬起MotionEvent.ACTION_UP -> {distanceY = 0fthis.invalidate()//重新绘制var x = event.getX()var y = event.getY()if (x > rectLeft && x < rectRight && y < rectBottom && y > rectTop) {mHomoViewClick?.onViewCilik()}else{}}}return true//自己处理!!!!!!!}
相关文章推荐
- 自定义view系列(3)--给自定义View添加点击事件
- Android自定义View与添加点击事件
- Android TextView 给文本中指定片段添加自定义点击事件
- iOS 为自定义tableView添加button点击事件后获取其序号
- 关于在自定义View中添加Button按钮以及实现点击事件
- android actionbar自定义View并添加点击事件
- 自定义TextView设置边框与背景颜色添加点击事件,点击更改随机数与背景
- Android RecyclerView自定义点击事件和长按事件
- Recyclerview添加点击事件和长按事件
- Android自动识别<a>标签的自定义TextView(可自定义点击事件)
- Android 给TextView添加点击事件
- 如何自定义RecyclerView的点击事件和绘制分割线-高级UI
- RecycleView添加头部、点击事件的监听
- AlertDialog中使用自定义View,view中的Button如何设置点击事件监听
- RecyclerView万能适配器加强版———可选择添加头和尾(含点击事件)
- 如何给navigationView中的按钮添加点击事件
- RecyclerView——添加点击事件
- tableview添加点击事件,不影响cell事件
- Android自定义View中的常用方法(距离、位置、点击事件)
- RecycleView不同类型Item&添加HeaderView&条目点击事件