1
저는 뷰 페이지가 있으며 부모 컨테이너에서 터치 이벤트를 가로 채고 싶습니다. ID가 "layoutContainer의"로 컨테이너에 onTouchListener를 연결하려고하면 뷰 페이저 아무것도 화재 이제까지 것이다 전체 화면을 차지하기 때문에 XML은이하위 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>
것 같습니다.
는 내가 뭘하려고 또 다른 일을보기 호출기에 터치 리스너를 부착 한 후 수동으로 제스처 검출기에 모션 이벤트를 통과했다
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;
}
}
화면에 수직 슬쩍 제스처를 감지 할 수 있도록하려면 그러나 이것도 작동하지 않습니다.