私の方法に問題があります
@Override
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
呼び出されることはありません。なぜそうなのか、何か考えはありますか?GoogleのAPI4.0.3アプリケーションを構築していて、ViewFliperのスワイプを有効にしようとしています。ただし、タッチが呼び出されないため、機能しません。
コード:
public class MainActivity extends SherlockMapActivity implements ActionBar.TabListener {
それが私の活動の宣言です。スワイプを検出するために、私はそれを実装しました:
SimpleOnGestureListener simpleOnGestureListener = new SimpleOnGestureListener(){
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {
float sensitvity = 50;
if((e1.getX() - e2.getX()) > sensitvity){
SwipeLeft();
}else if((e2.getX() - e1.getX()) > sensitvity){
SwipeRight();
}
return true;
}
};
GestureDetector gestureDetector= new GestureDetector(simpleOnGestureListener);
ありがとうございました。
編集:
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<ViewFlipper
android:id="@+id/ViewFlipper"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff" >
<include
android:layout_height="match_parent"
layout="@layout/mymain" />
<include layout="@layout/secondmain" />
<include layout="@layout/thirdmain" />
<include layout="@layout/fourthmain" />
</ViewFlipper>
</LinearLayout>
Edit2:含まれているすべてのレイアウトにscrollviewが実装されています。スクロールがそれらのイベントを取得して処理することは可能ですか?もしそうなら、ジェスチャーを検出する方法は?