私のviewFlipperでは、いくつかのTextViewが動的にロードされます。サイズが異なる場合があります。つまり、viewFlipper の下にスペースが残っている可能性があります (スクリーンショットの緑色の部分を参照)。
灰色の部分(viewflipper)をスワイプしたときだけでなく、緑色の部分をスワイプしたときにも onFling メソッドを呼び出してほしい
私のレイアウトは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/root">
<ViewFlipper android:id="@+id/viewFlipper"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ViewFlipper>
</RelativeLayout>
私のonCreateでは、これを行います:
this.viewFlipper = (ViewFlipper) this.findViewById(R.id.viewFlipper);
this.gestureDetector = new GestureDetector(new MyGestureDetector());
RelativeLayout root = (RelativeLayout) this.findViewById(R.id.root);
root.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
Log.d("root", "true");
return false;
} else {
Log.d("root", "false");
return false;
}
}
});
これまでのところ、true になっても false を返そうとしました。これにより、viewflipper の外でスワイプが行われた場合でも、イベントが消費されず、viewFlipper に渡されません。
viewFlipper は明示的な onTouchListener を必要としないことに注意してください。1つでもなくても機能します(理由はよくわかりません..)
誰も何をすべきか知っていますか?