我找到了 "Undo Bar" 的实现在 Android 的 Gmail 应用程序中使用。 “UndoBar”基本上是一个显示在布局顶部的 View 。
不幸的是,它并不完整——它没有通过触摸栏外的屏幕来关闭栏的功能。
我已经实现了覆盖 onInterceptTouchEvent
的 FrameLayout
来处理栏关闭,但触摸 Action Bar 什么都不做。
有什么方法可以处理 Action Bar 中的此类事件吗?
下面是一张带有“UndoBar”的图片。我想实现什么来处理红点表示的操作栏中的触摸。
最佳答案
尝试覆盖您的 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/