首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在setOnTouchListener()中返回false时,motionEvent.action_move不工作

在setOnTouchListener()中返回false时,motionEvent.action_move不工作的原因是,返回false表示当前的触摸事件没有被消费,会继续传递给下一层的View处理。因此,如果在setOnTouchListener()中返回false,motionEvent.action_move事件将不会被触发。

通常情况下,我们在setOnTouchListener()中返回true,表示当前的触摸事件已经被消费,不再传递给其他View处理。这样可以确保motionEvent.action_move事件能够正常工作。

如果你希望在setOnTouchListener()中返回false,并且仍然需要处理motionEvent.action_move事件,可以考虑在setOnTouchListener()中手动处理motionEvent.action_move事件。你可以通过在onTouch()方法中判断触摸事件的类型,然后执行相应的逻辑来处理motionEvent.action_move事件。

例如,你可以在onTouch()方法中使用switch语句来处理不同类型的触摸事件:

代码语言:java
复制
view.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                // 处理按下事件
                return true;
            case MotionEvent.ACTION_MOVE:
                // 处理移动事件
                // ...
                return true;
            case MotionEvent.ACTION_UP:
                // 处理抬起事件
                return true;
        }
        return false;
    }
});

在处理motionEvent.action_move事件时,你可以根据具体需求进行相应的操作,比如更新UI界面、执行动画效果等。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议你参考腾讯云官方文档或者咨询腾讯云的技术支持团队,获取与你的需求相匹配的产品和解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通过 ReferenceOutputAssembly=False 在引用项目时,不额外引入依赖文件

通过本文的方法,你可以在 A 项目编译时,确保 B 项目已经编译,而无需引用 B。...ReferenceOutputAssembly=False 依然在项目中使用往常习惯的方法设置项目引用: 但是,在项目引用设置完成之后,需要打开项目的项目文件(.csproj)给 ProjectReference...节点加上 ReferenceOutputAssembly 的属性设置,将其值设置为 false。...ProjectReference 是 Sdk 风格的 csproj 文件中的项目引用。...NuGet 包中附带其他文件 如果要生成 NuGet 包,我们有时需要多个项目生成的文件来共同组成一个 NuGet 包,这个时候我们需要的仅仅是把其他项目生成的文件放到 NuGet 包中,而不是真的需要在

28420

View的事件分发及滑动冲突的解决

及其子类中存在,不在activity和view中存成 public boolean onInterceptTouchEvent(MotionEvent event) true 表示拦截这个事件,不继续分发给子视图...boolean onTouchEvent(MotionEvent event) true 表示当前视图处理对应的事件,事件将不会向上传递给父视图 false 表示当前视图不处理对应的事件,事件将会向上传递给父视图的...),则事件将会按照嵌套层次有外向内传递,到达最内层的view时,就由最内层的onTouchEvent进行处理,如果能处理就返回true消费掉,如果不能处理就返回false,这时事件会重新向外层传递,并由外层的...方法,在最后执行onClick方法,如果onTouch返回true,事件将不会继续传递,最后也不会调用onClick方法,如果返回false,事件继续传递 四、viewGroup的事件分发 viewGroup...而父View不一样,如果父View在ACTION_MOVE中开始拦截事件,那么后续ACTION_UP也将默认交给父View处理 2、内部拦截法 子view重写dispatchTouchEvent,根据逻辑在

89040
  • android view事件分发机制

    l) {        mOnTouchListener = l;    }   其实就是我们在Activity中设置的setOnTouchListener。...PREPRESSED的检测;即当前触发时机在DOWN触发不到115ms时,你就已经移出控件外了; 如果115ms后,你才移出控件外,则你的当前mPrivateFlags一定为PRESSED且发送了长按的检测...2、onTouchEvent中的DOWN,MOVE,UP DOWN时: a、首先设置标志为PREPRESSED,设置mHasPerformedLongPress=false ;然后发出一个115ms后的...内,触发UP,此时标志为PREPRESSED,则执行UnsetPressedState,setPressed(false);会把setPress转发下去,可以在View中复写dispatchSetPressed...onClick返回false,则两个都会执行;返回true则会屏幕setOnClickListener 最后我们给MyButton同时设置setOnClickListener和setOnLongClickListener

    1.2K60

    Android事件分发全面解析(基础篇)-夯实基础

    Touch 事件主要有以下几种: 事件 简介 ACTION_DOWN 手指 初次接触到屏幕 时触发。 ACTION_MOVE 手指 在屏幕上滑动 时触发,会会多次触发。...onInterceptTouchEvent 在 dispatchTouchEvent内部调用,用来判断是否拦截某个事件,如果当前View拦截了某个事件,那么在同一个事件序列中,此方法不会被再次调用,返回结果表示是否拦截当前事件...onTouchEvent 在 'dispatchTouchEvent '方法中调用,用来处理点击事件,返回结果表示是否消耗当前事件,如果不消耗,则在同一个事件序列中,当前View 无法再次接受到事件。...ViewGroup 默认不拦截任何事件。Android 源码中ViewGroup 的 onInterceptTouchEvent 方法默认返回false....Activity这里,其实无论返回true还是false,都会消费事件。 onTouch中返回 true或者false,对onTouchEvent有什么影响吗?

    64720

    Android触摸事件_简述兴奋在突触的传递过程

    返回true表示不继续分发,事件没有被消费。返回false则继续往下分发,如果是ViewGroup则分发给onInterceptTouchEvent进行判断是否拦截该事件。...重点是第三个矩形,这个是在把CustomButton中的onTouchEvent返回改为false,也就是button不消费点击事件。...具体流程如下图所示: 在开发中,经常会在Activity中设置setOnTouchListener或者setOnClickListener,下面就在MainActivity里面添加。...可以看到这里有几个条件,当几个条件都满足时该方法就返回true,当条件li.mOnTouchListener不为空时,通过在源码中查找,发现mOnTouchListener是在以下方法中进行设置的。...如果返回了 true 则会接收并消费该事件。 如果返回 super.onTouchEvent(ev) 默认处理事件的逻辑和返回 false 时相同。

    71820

    1、创建刷新控件

    ; } public void init(Context context){ setOnTouchListener(this); } } 注意:别忘记了setOnTouchListener...在init中添加  这时候我们需要对event的down,move,up事件进行逻辑处理,当手指按在屏幕时会触发事件,一个down事件,0~无数次move事件,一个up事件,这里面着重对move事件做处理...; }  我们下面要做下拉时给人的反馈,我们下拉时有3种状态分别是 开始刷新  (下拉距离不超过100) 释放刷新   (下拉距离超过100) 刷新中    (手指释放,up事件处理) //属性-开始刷新状态...IPullDownRefreshService iPullDownRefreshService) { this.iPullDownRefreshService = iPullDownRefreshService; }  准备工作做好后...方法中添加 public void init(Context context) { setOnTouchListener(this); ......

    55810

    Android:OnTouchListener的简单使用,按钮点击放大与缩小

    OnTouchListene是用来监听手机屏幕事件的监听,用来处理按下,抬起,滑动等动作 具体的有3中情况:UP抬起 DOWN按下 MOVE滑动 使用: 在Activity中,实现OnTouchListener...接口,重写 onTouch方法,为需要的控件setOnTouchListener 最后可以根据ID的不同,对不同的控件按下,抬起,滑动事件做不同的处理 通常在设计UI界面时,为了用户体验更好,通常在用户按下某个控件之后会有相应的小范围变大效果...,在弹起之后,会恢复原样,这里可以用OnTouchListener 与动画共同实现 ①自定义动画效果,按下和抬起分别执行两个不同的动画 按下时的动画(scale): android:fromXScale...view.startAnimation(animation); } //移动操作 if(event.getAction()==MotionEvent.ACTION_MOVE...){ } return false; } 这里没有写滑动的操作,是因为实现按钮的放大与缩小不需要处理滑动事件 如此,就实现了点击按钮之后,按钮会放大,在松开之后,会恢复到原样

    3.1K10

    View 事件分发

    返回false就是控件没有设置setOnTouchListener方法,或者控件enabled属性为false,就执行onTouchEvent方法,否则不执行 当不是enabled,也就是说setEnabled...(false)设置了onTouch方法也不执行,只能通过重写onTouchEvent方法,最后dispatchEvent方法返回值也就是onTouchEvent方法返回值 当控件是enabled,也就是说...= null) { //这里调用了TouchDelegate类中的onTouchEvent方法,该方法是dispatchEvent返回为true时,才返回true,此时 onTouchEvent就返回true...:         Rect bounds = mBounds; //只有点击的在该控件区域时,才会触发action_down事件         if (bounds.contains(x, y))...onClick监听 当dispatchEvent事件分发时,只有前一个action返回为true时,后一个action才会触发 View事件分发面试问题 事件分发中的 onTouch 和 onTouchEvent

    64010

    深度学习中激活函数的导数在不连续可导时的处理

    Q: 深度学习中激活函数在不连续可导时的导数怎么处理呢? A: 激活函数不要求处处连续可导,在不连续可导处定义好该处的导数即可。 sigmoid函数是处处连续可导的。其他如ReLU,在0处不连续可导。...---- 以caffe中的ReLU为例 在caffe中,给定输入x, ReLU层可以表述为: f(x) = x, if x>0; f(x) = negative_slope * x, if x 0时,ReLU是leaky ReLU. negative_slope默认为0, 即标准ReLU。...如下图代码所示,Backward_cpu中bottom_data(即输入x)=0时,导数为negative_slope。...[relu_layer.cpp] ---- 常见激活函数和导数 不连续可导处的导数值取derivative(x+)还是derivative(x-),不同框架如pytorch, caffe, tensorflow

    3.1K00

    OnTouch关于performClick的Warning

    逻辑上来讲处理点击操作应该更合理的被放置在View#performClick中,这样当点击事件发生时一些访问性操作可以成功请求调用performClick。...在View中找到onTouchEvent的源码,在ACTION_UP中可以找到这一段 if (mPerformClick == null) { mPerformClick = new PerformClick...的ACTION_UP过程中启用了一个新的线程来调用performClick(),而performClick()的作用时调用你在setOnClickListener时设置的onClick()方法。...一般来说这个警告都是可以忽略不用管他的,毕竟我们在自定义控件时很少会在重写了onTouchEvent后再使用setOnClickListener,这个警告主要是考虑到其他人在使用这个控件时调用这个方法,...2 如果你在setOnTouchListener时遇到这个Warning,那么除了在控件内重写performClick()外,也需要在onTouch()中调用performClick(): button.setOnTouchListener

    52730

    简易的可拖动的桌面悬浮窗效果Demo

    由此可知,要实现360手机卫士那样的悬浮窗效果,就需要使用系统级别的悬浮窗 下面学习实现桌面悬浮窗效果的代码步骤: Demo描述,悬浮窗为一个ImageView ,可以在桌面 ,任意应用,锁屏上方任意移动...不阻塞事件传递到后面的窗口 关于 WindowManager.LayoutParams 的详解 请参考:Android中WindowManager.LayoutParams类详解 5、悬浮窗默认显示的位置...lp.gravity = Gravity.LEFT|Gravity.TOP; //显示在屏幕左上角 6、悬浮窗相对5默认位置的位置差和悬浮窗宽高设置      //显示位置与指定位置的相对位置差...windowManager.addView(imageView,lp); 9.设置悬浮窗的响应事件  这里为移动悬浮窗操作,可以自己扩展添加点击等响应事件 imageView.setOnTouchListener...Override public boolean onTouch(View v, MotionEvent event) { boolean ret = false

    3.2K70
    领券