我有一个视图寻呼机,我想拦截其父容器上的触摸事件。xml如下所示
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:id="@+id/layoutContainer"
android:layout_height="match_parent" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="0dp" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
</RelativeLayout>
</RelativeLayout>
由于视图寻呼机占据了整个屏幕,如果尝试将onTouchListener附加到id为“layoutContainer”的容器上,则不会触发任何操作。
我希望能够检测屏幕上的垂直滑动手势
private class MyGesture extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
return super.onSingleTapConfirmed(e);
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
Snap snap = snaps.get(targetPosition);
return super.onSingleTapUp(e);
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
float deltaX = e2.getX() - e1.getX();
float deltaY = e2.getY() - e1.getY();
if ((Math.abs(deltaX) < SWIPE_MIN_DISTANCE) || (Math.abs(velocityX) < SWIPE_THRESHOLD_VELOCITY)) {
}
else {
}
if ((Math.abs(deltaY) < SWIPE_MIN_DISTANCE) || (Math.abs(velocityY) < SWIPE_THRESHOLD_VELOCITY)) {
}
else {
app.log("swipe up");
//execute some code here
}
return true;
}
}
我尝试做的另一件事是将触摸监听器连接到视图寻呼机,然后手动将运动事件传递给手势检测器,但这也不起作用。
您可以创建containerview extends RelativeLayout,并覆盖此视图组中的onInterceptTouchEvent。这样地:
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mDownX = event.getX();
mDownY = event.getY();
return false;
case MotionEvent.ACTION_MOVE:
if (Math.abs(event.getX() - mDownX) < Math.abs(event.getY() - mDownY)) { // Up and down around sliding distance is greater than sliding distance;
return true;
}
return false;
default:
break;
}
return false;
}
触摸操作概述 浏览器的触摸 API 由三个部分组成。 Touch:一个触摸点 TouchList:多个触摸点的集合 TouchEvent:触摸引发的事件实例 Touch接口的实例对象用来表示触摸点(一根手指或者一根触摸笔),包括位置、大小、形状、压力、目标元素等属性。有时,触摸动作由多个触摸点(多根手指)组成,多个触摸点的集合由TouchList接口的实例对象表示。TouchEvent接口的实例对
触摸事件是手机游戏中最重要的事件,它易于创建,还能提供多种多样的功能。 让我们先了解一下什么是触摸事件,当你触摸移动设备的屏幕时,设备感受到被触摸,了解到被触摸的位置,同时取得触摸到的内容,然后你的触摸被回答。 这就是触摸事件。 如果你希望通过触摸控制屏幕下层的对象,那可以通过 优先级,达成这种需求,优先级高的对象能先处理事件。 创建触摸事件监听器: // Create a "one by on
我有一个简单的布局: 在我的自定义框架布局中,我正在重写: 并且返回false。滚动列表视图时,onInterceptTouchEvent接收ACTION_ DOWN和第一个ACTION_。然后,ListView似乎会接管,onInterceptTouchEvent无法接收以下ACTION_MOVE事件。 这与文档所述的内容相悖: 因为只要从这个函数返回false,每个后续事件(直到并包括最终的u
我有问题,因为我想在内部包围一些,所以我需要知道。 哪些DOM元素可以是tr的子元素?(我知道div不能。)
问题内容: 在Interface TakesScreenshot 页面上,我发现了这一点: 捕获屏幕截图并将其存储在指定位置。对于扩展了TakesScreenshot的WebDriver,这将根据浏览器尽最大努力按优先顺序返回以下内容:-整个页面- 当前窗口-当前帧的可见部分-包含浏览器的整个显示器的屏幕截图 对于扩展TakesScreenshot的WebElement,这将尽最大努力,具体取决于
问题内容: 我想采用一个现有的枚举,并向其添加更多元素,如下所示: 这在Java中可行吗? 问题答案: 不,你无法使用Java执行此操作。除了别的什么,d大概就是A(扩展的“正常”想法)的一个实例,但是只知道这一点的用户却一无所知-这违背了枚举作为一组众所周知的集合的观点。价值观。 如果你可以告诉我们更多有关如何使用它的信息,我们可能会建议其他解决方案。