如何禁止滚动浏览滚动笔上的手写笔



我有自定义的scrollview编写,它可以正常工作,没有平板电脑的手写笔。 使用平板电脑时,此CustomScrollview允许手写笔在禁用滚动时执行滚动。

public class CustomScrollView extends ScrollView {
    private boolean enabled = false;
    public CustomScrollView(Context context) {
        super(context);
    }
    public CustomScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return enabled;
    }
    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }
    public boolean getEnabled() {
        return this.enabled;
    }
}

您可以尝试一下。

 if (MotionEvent.getToolType(TOOL_TYPE_STYLUS))
 { 
 // disable scrollview 
 }

尝试以下:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    if (ev.getToolType(TOOL_TYPE_STYLUS)) { 
        // also, here you should check if it should be disabled at this point
        return !enabled;
    } else {
        return enabled;
    }
}

覆盖internecepthoverlistener的覆盖能力。现在,如果启用了卷轴浏览器,则处理手写笔滚动滚动,一旦启用了scrollview = false,就不会处理同样的滚动滚动。

    public class CustomScrollView extends ScrollView {
        private boolean enabled = false;
        public CustomScrollView(Context context) {
            super(context);
        }
        public CustomScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
        public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            return enabled;
        }
        public void setEnabled(boolean enabled) {
            this.enabled = enabled;
        }
      @Override
        public boolean onInterceptHoverEvent(MotionEvent event) {
   if (this.enabled)
        {
            return false;
        }
        else
        {
          return true;
        }
}
       public boolean getEnabled() {
            return this.enabled;
        }
    }

最新更新