• ontouch-控件添加ontouch监听事件


    1,代码public class CalculatorViewPager extends ViewPager {}中

    package com.android.calculator2;
    
    import android.content.Context;
    import android.support.v4.view.ViewPager;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    
    public class CalculatorViewPager extends ViewPager {
        private boolean enabled;
        public CalculatorViewPager(Context context) {
            super(context);
            this.enabled = false;
        }   
    
        public CalculatorViewPager(Context context, AttributeSet attrs) {
            super(context, attrs);
            this.enabled = false;
        }   
    
        public boolean shouldDelayChildPressedState() {
            return false;
        }   
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if (this.enabled) {
                return super.onTouchEvent(event);
            }   
            android.util.Log.e("zhangshuli", "pantouch");
            return false;
        }   
    
        @Override
        public boolean onInterceptTouchEvent(MotionEvent event) {
            if (this.enabled) {
                return super.onInterceptTouchEvent(event);
            }   
            android.util.Log.e("zhangshuli", "paninter");
            return false;
        }   
    
        public void setPagingEnabled(boolean enabled) {
            this.enabled = enabled;
        }   
    }

    打印结果

    01-01 10:01:49.274 E/zhangshuli( 4832): paninter
    01-01 10:01:49.292 E/zhangshuli( 4832): paninter
    01-01 10:01:49.308 E/zhangshuli( 4832): paninter
    01-01 10:01:49.325 E/zhangshuli( 4832): paninter
    01-01 10:01:49.342 E/zhangshuli( 4832): paninter
    01-01 10:01:49.360 E/zhangshuli( 4832): paninter
    01-01 10:01:49.376 E/zhangshuli( 4832): paninter
    01-01 10:01:49.393 E/zhangshuli( 4832): paninter
    01-01 10:01:49.411 E/zhangshuli( 4832): paninter
    01-01 10:01:49.428 E/zhangshuli( 4832): paninter
    01-01 10:01:49.445 E/zhangshuli( 4832): paninter
    01-01 10:01:49.464 E/zhangshuli( 4832): paninter
    01-01 10:01:49.469 E/zhangshuli( 4832): paninter

    touch 没有执行,点击按钮有效果

    1111

        @Override
        public boolean onTouchEvent(MotionEvent event) {    
            android.util.Log.e("zhangshuli", "pannel");
            return false;
        }   
    
        @Override
        public boolean onInterceptTouchEvent(MotionEvent event) {  
            android.util.Log.e("zhangshuli", "inter");
            return true;
        } 

    结果

    01-01 09:36:56.131 E/zhangshuli( 4007): inter
    01-01 09:36:56.132 E/zhangshuli( 4007): pannel
    01-01 09:36:57.369 E/zhangshuli( 4007): inter
    01-01 09:36:57.369 E/zhangshuli( 4007): pannel
    01-01 09:36:58.254 E/zhangshuli( 4007): inter
    01-01 09:36:58.255 E/zhangshuli( 4007): pannel
    01-01 09:36:59.125 E/zhangshuli( 4007): inter
    01-01 09:36:59.125 E/zhangshuli( 4007): pannel

    都执行,点击没有效果

    2.代码

    public boolean onTouchEvent(MotionEvent event) {   
            android.util.Log.e("zhangshuli", "pannel");
            return true;
        }   
    
        @Override
        public boolean onInterceptTouchEvent(MotionEvent event) {   
            android.util.Log.e("zhangshuli", "inter");
            return false;
        }   

    打印如下

    01-01 09:33:52.885 E/zhangshuli( 3892): inter
    01-01 09:33:52.902 E/zhangshuli( 3892): inter
    01-01 09:33:52.919 E/zhangshuli( 3892): inter
    01-01 09:33:52.936 E/zhangshuli( 3892): inter
    01-01 09:33:52.955 E/zhangshuli( 3892): inter
    01-01 09:33:52.971 E/zhangshuli( 3892): inter
    01-01 09:33:52.988 E/zhangshuli( 3892): inter
    01-01 09:33:53.005 E/zhangshuli( 3892): inter
    01-01 09:33:53.007 E/zhangshuli( 3892): inter

    点击有效果

    3.代码

        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if (this.enabled) {
                return super.onTouchEvent(event);
            }   
            android.util.Log.e("zhangshuli", "pannel");
            return true;
        }   
    
        @Override
        public boolean onInterceptTouchEvent(MotionEvent event) {
            if (this.enabled) {
                return super.onInterceptTouchEvent(event);
            }   
            android.util.Log.e("zhangshuli", "inter");
            return true;
        } 

    打印

    01-01 09:42:59.198 E/zhangshuli( 4301): inter
    01-01 09:42:59.198 E/zhangshuli( 4301): pannel
    01-01 09:42:59.225 E/zhangshuli( 4301): pannel
    01-01 09:42:59.241 E/zhangshuli( 4301): pannel
    01-01 09:42:59.258 E/zhangshuli( 4301): pannel
    01-01 09:42:59.275 E/zhangshuli( 4301): pannel
    01-01 09:42:59.292 E/zhangshuli( 4301): pannel
    01-01 09:42:59.309 E/zhangshuli( 4301): pannel
    01-01 09:42:59.326 E/zhangshuli( 4301): pannel
    01-01 09:42:59.343 E/zhangshuli( 4301): pannel
    01-01 09:42:59.362 E/zhangshuli( 4301): pannel
    01-01 09:42:59.377 E/zhangshuli( 4301): pannel
    01-01 09:42:59.395 E/zhangshuli( 4301): pannel
    01-01 09:42:59.412 E/zhangshuli( 4301): pannel
    01-01 09:42:59.437 E/zhangshuli( 4301): pannel
    01-01 09:42:59.447 E/zhangshuli( 4301): pannel
    01-01 09:42:59.463 E/zhangshuli( 4301): pannel
    01-01 09:42:59.480 E/zhangshuli( 4301): pannel
    01-01 09:42:59.497 E/zhangshuli( 4301): pannel
    01-01 09:42:59.514 E/zhangshuli( 4301): pannel
    01-01 09:42:59.532 E/zhangshuli( 4301): pannel
    01-01 09:42:59.537 E/zhangshuli( 4301): pannel
    01-01 09:43:01.267 E/zhangshuli( 4301): inter

    点击按钮效果

    text.setontouchlisten

    那么只有在text这个控件内点击才有效果

  • 相关阅读:
    vue 添加对象的新属性的方法
    vue 简单的c3属性写法
    大数据分析技术生态圈一览
    网络
    Axis2 WebService客户端Axis2调用
    前端资源
    不错的数据库
    dubbo
    大数据相关
    This is very likely to create a memory leak 异常
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_touch_150327133.html
Copyright © 2020-2023  润新知