android - 如何处理 Android View 外的触摸?

标签 android gmail undo

我找到了 "Undo Bar" 的实现在 Android 的 Gmail 应用程序中使用。 “UndoBar”基本上是一个显示在布局顶部的 View 。

不幸的是,它并不完整——它没有通过触摸栏外的屏幕来关闭栏的功能。

我已经实现了覆盖 onInterceptTouchEventFrameLayout 来处理栏关闭,但触摸 Action Bar 什么都不做。

有什么方法可以处理 Action Bar 中的此类事件吗?

下面是一张带有“UndoBar”的图片。我想实现什么来处理红点表示的操作栏中的触摸。

enter image description here

最佳答案

尝试覆盖您的 Activity 的 dispatchTouchEvent。

dispatchTouchEvent(MotionEvent event){

     int x= event.getRawX();
     int y= event.getRawY();


         if(/*check bounds of your view*/){
          // set your views visiblity to gone or what you want. 
         }
      //for prevent consuming the event.
      return super().dispatchTouchEvent(event);    
}

更新

dispatchTouchEvent(MotionEvent event){

     int x= event.getRawX();
     int y= event.getRawY();

      return super().dispatchTouchEvent(event)||[YourView].onTouch(event);    
}

关于android - 如何处理 Android View 外的触摸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16155285/

相关文章:

Android Studio 模块命名约定

Android In app Billing 套餐名称冲突

javascript - Gmail API 预设回复

html - Mailchimp 电子邮件中的编码问题

git - 如何在提交前撤消 'git add'?

java - Android 按钮的动画效果不符合预期

java - android: 任务 ':app:dexDebug' zxing 条码扫描器执行失败

email - Jenkins 找不到 smtp.gmail.com

winapi - win32api 使用 SHFileStruct 从回收站还原文件

svn - 撤消Subversion中的特定修订