本文介绍了onInterceptTouchEvent的ACTION_UP和ACTION_MOVE不会被调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
日志从未登录 ACTION_UP 或 ACTION_MOVE (这是我从缩短code示例中删除)
下面是我的code的缩短版:
公共类ProfileBadgeView扩展的LinearLayout { 活动的行为; 公共ProfileBadgeView(上下文的背景下){
超级(上下文);
} 公共ProfileBadgeView(上下文的背景下,ATTRS的AttributeSet){
这(背景下,ATTRS,0);
} 公共ProfileBadgeView(上下文的背景下,ATTRS的AttributeSet,诠释defStyle){
超(背景下,ATTRS,defStyle);
} 公共无效initView(活动行为){
//..在里面
}
@覆盖
公共布尔onInterceptTouchEvent(MotionEvent EV){ 如果(ev.getAction()== MotionEvent.ACTION_DOWN){
logIntercept(ACTION DOWN);
}否则如果(ev.getAction()== MotionEvent.ACTION_UP){
logIntercept(ACTION_UP);
}
返回false;
} @覆盖
公共布尔onTouchEvent(MotionEvent EV){
返回true;
}
私人无效logIntercept(obj对象){
Log.i(this.getClass()getSimpleName()+INTERCEPT:,obj.toString());
}}
解决方案
您 onInterceptTouchEvent
方法不经过 ACTION_DOWN
事件,因为你在 onTouchEvent
方法返回真正
。因此,所有其他的事件在 onTouchEvent
发送,而不是在 onInterceptTouchEvent
更多:
这篇关于onInterceptTouchEvent的ACTION_UP和ACTION_MOVE不会被调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!