我试图通过活动窗口的装饰视图抓住它们(事件)而没有运气:
getwindow().getDecorVIEw().setontouchListener(...);解决方法 您可以覆盖
Activity.dispatchTouchEvent
以拦截活动中的所有触摸事件,即使您有一些将消耗触摸事件的ScrollVIEw,button等视图. 结合使用ViewGroup.requestDisallowInterceptTouchEvent
,您可以禁用VIEwGroup的触摸事件.例如,如果要禁用某些VIEwGroup中的所有触摸事件,请尝试以下 *** 作:
@OverrIDepublic boolean dispatchtouchEvent(MotionEvent event) { requestdisallowIntercepttouchEvent( (VIEwGroup) findVIEwByID(R.ID.topLevelrelativeLayout),true ); return super.dispatchtouchEvent(event);}private voID requestdisallowIntercepttouchEvent(VIEwGroup v,boolean disallowIntercept) { v.requestdisallowIntercepttouchEvent(disallowIntercept); int childCount = v.getChildCount(); for (int i = 0; i < childCount; i++) { VIEw child = v.getChildAt(i); if (child instanceof VIEwGroup) { requestdisallowIntercepttouchEvent((VIEwGroup) child,disallowIntercept); } }}总结
以上是内存溢出为你收集整理的android – 如何拦截所有触摸事件?全部内容,希望文章能够帮你解决android – 如何拦截所有触摸事件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)