今天在做自定义的可选文本的 TextView 类时,用到了 View 类的 setOnTouchListener(OnTouchListener l)事件监听,在构造 OnTouchListener 对象时需要重写 onTouch(...)方法,这个方法的返回值是布尔类型,
刚开始我按默认给定的返回值 false运行,发现只能监听到这个 view 的“按下”事件,“移动”和“抬起”都不能够监听到;于是把返回值改为了 true,就都监听到了。
但是随后又遇到了一个问题,那就是:点击其他组件后,再点击这个 view 的时候获取不到焦点!也就是click事件不响应了。我猜想一定是受到了 onTouch 方法的影响,查资料发现:
设为true 和 false的效果是有区别的:
setOnTouchListener 单独使用的时候返回值需要为true,这样才能保证移动的时候能后获取相应的监
听,而非一次监听(即每次只有一个按下的事件)
setOnTouchListener 和 setOnClickListener 同时使用时,onTouch 的返回值要设为 false,这样既可
以保证按下移动抬起事件可以被监听,并且点击事件也会被监听。
于是,我又对这个 view 设置了setOnClickListener(虽然重写的方法体中什么也没写),并将onTouch 的返回值要设为 了false,结果就 既监听到了Touch 也能监听到 click 事件了,可以重获焦点了!
分享到:
相关推荐
这个方法处理触摸事件,包括ACTION_DOWN、ACTION_MOVE、ACTION_UP等。通过分析这些事件,我们可以跟踪用户的滑动操作。 2. **滑动状态判断**: 在`onTouchEvent()`中,我们需要根据ACTION_DOWN、ACTION_MOVE和...
在Android中,单点触摸通常涉及到ACTION_DOWN、ACTION_UP和ACTION_MOVE这三种触摸事件。ACTION_DOWN表示手指首次接触屏幕,ACTION_UP表示手指离开屏幕,ACTION_MOVE则在手指在屏幕上滑动时触发。开发者通常会在View...
对于按键长按事件,我们通常需要监听ACTION_DOWN和ACTION_UP事件,同时设置一个超时时间来判断是否为长按。这个超时时间通常设置为300-1000毫秒,具体可以根据应用需求调整。下面是一个简单的例子: ```java public...
3.5 滚动(Scroll):适用于ListView、ScrollView等可滚动视图,通过监听ACTION_DOWN、ACTION_MOVE和ACTION_UP,以及ACTION_SCROLL事件,可以实现平滑的滚动效果。 四、进阶手势 4.1 Pinch to Zoom(捏合缩放):...
- **Up/Move事件**:如果ACTION_UP或ACTION_MOVE事件在某个子View内发生,该子View会首先接收到事件,即使ACTION_DOWN没有在此View上触发。 2. OnTouchEvent阶段: - **事件分发**:每个View都有一个OnTouchEvent...
例如,气泡在ACTION_DOWN时从小到大渐变,ACTION_MOVE时沿着手指滑动,ACTION_UP时气泡慢慢消失。这可以通过改变气泡的透明度、大小和位置来实现,可以使用ValueAnimator或ObjectAnimator配合 interpolators 来控制...
开发者可以创建一个自定义View,监听用户的触摸事件,根据ACTION_DOWN和ACTION_MOVE更新飞机的位置,ACTION_UP则作为停止移动的信号。同时,也可以使用动画库如PropertyAnimator来平滑地改变飞机的位置。 7. **事件...
Android中的触摸事件主要由三个基本动作组成:ACTION_DOWN(按下)、ACTION_MOVE(移动)和ACTION_UP(释放)。当用户触碰屏幕时,系统会发送一个ACTION_DOWN事件,手指移动时会有ACTION_MOVE事件,手指离开屏幕时则...
总结来说,Android游戏开发中的单点触摸与多点触摸响应涉及到对MotionEvent的处理,包括ACTION_DOWN、ACTION_UP、ACTION_POINTER_DOWN、ACTION_POINTER_UP等动作类型。同时,手势识别、事件分发和性能优化也是提升...
在接收到ACTION_DOWN或ACTION_MOVE事件时,获取到的坐标可以用于绘制一个矩形或者点,其颜色可以根据需求动态设置。例如,当手指按下时,可以将该点设为红色,抬起时恢复原色。 6. **感应屏幕**: 这个描述可能指的...
在onTouchEvent()方法中,我们需要监听ACTION_DOWN、ACTION_MOVE和ACTION_POINTER_DOWN事件。ACTION_DOWN记录起始位置,ACTION_MOVE处理图片的平移,ACTION_POINTER_DOWN和ACTION_POINTER_UP则用于计算缩放比例。 ...
总结来说,Android中的`onTouch`事件处理涉及到ACTION_DOWN、ACTION_MOVE和ACTION_UP三个阶段,通过对Y坐标的比较,我们可以判断出用户的上下移动。在实际项目中,这样的功能可以应用于滑动菜单、滚动视图、滑动切换...
MotionEvent提供了对触摸屏幕时的多种动作的监听,如ACTION_DOWN(按下),ACTION_UP(抬起),ACTION_MOVE(移动)等。当用户进行双击或两个手指同时触摸屏幕时,我们需要监听并解析这些事件。 1. **单击退出**: ...
触摸事件在Android中由一系列的MotionEvent组成,包括ACTION_DOWN、ACTION_MOVE、ACTION_UP等。一个触摸事件的完整流程通常从ACTION_DOWN开始,然后是ACTION_MOVE(如果用户在屏幕上滑动)直至ACTION_UP结束。默认...
对于单点触摸,我们通常关注ACTION_DOWN、ACTION_MOVE和ACTION_UP这三个动作。ACTION_DOWN表示手指首次接触屏幕,ACTION_MOVE表示手指在屏幕上移动,ACTION_UP则表示手指离开屏幕。在onTouchEvent()中,我们可以根据...
以SwipeRefreshLayout(下拉刷新)和NestedScrollView(嵌套滚动)为例,当它们一起使用时,SwipeRefreshLayout会监听ACTION_DOWN事件,判断是否需要执行下拉刷新。如果不需要,它会通过`onInterceptTouchEvent`返回...
记录下第一次ACTION_DOWN时的X和Y坐标作为参照点,然后在ACTION_MOVE事件中,根据当前手指位置计算出相对于参照点的位移,将这个位移应用到图片的坐标上,实现图片的拖动效果。 在实现过程中,可能需要使用到`...
首先,要实现多点触摸功能,我们需要监听MotionEvent事件,特别是ACTION_DOWN、ACTION_MOVE和ACTION_UP这三种类型。ACTION_DOWN表示手指触摸屏幕,ACTION_MOVE表示手指移动,ACTION_UP表示手指离开屏幕。通过比较...
单点触摸主要关注ACTION_DOWN, ACTION_UP和ACTION_MOVE事件,而多点触摸则需要处理多个触点,例如ACTION_POINTER_DOWN, ACTION_POINTER_UP和ACTION_MOVE。理解并熟练掌握这些事件处理机制,是开发具有丰富交互功能的...
当用户与Button交互时,可以通过onTouch()方法获取ACTION_DOWN(按下)、ACTION_MOVE(移动)和ACTION_UP(释放)等事件。如果需要在按钮被触摸时执行特定操作,可以使用OnTouchListener: ```java myButton....