2

正常に動作するカスタム ビューがあり、それにジェスチャーを入れようとしています。私が目にする最も一般的な手法は、次のような XML を追加することです (Android のドキュメントから:

<android.gesture.GestureOverlayView
  android:id="@+id/myGestures"
  android:layout_width="fill_parent"
  android:layout_height="0dip"
  android:layout_weight="1.0"
  />

私のビューは RelativeView 内にあり、この GetureOverlayView を参照しようとすると、例外が発生します。

また、次のように、既存のカスタム ビュー クラス内で接続しようとしました。

mGestures = new GestureOverlayView(context, attrs);
mGestures.addOnGesturePerformedListener(this);

ただし、コールバックは呼び出されません。

誰かが私のエラーを指摘したり、ジェスチャー コールバックを取得したり、診断アプローチを提案したりできるようにするより良い方法を提案できますか?

4

1 に答える 1

3

こんにちは、同じ問題の解決策を見つけるのに苦労したときに、あなたの質問に出くわしました:カスタムビュー、ゲージがあり、ジェスチャーを操作できませんでした(あなたの質問が見つかるまで)。

私は問題を解決できたので、この応答です。

ビューがクリック イベントを返していることがわかりましたが、ACTION_DOWN の場合、アクションは常に 0 でした... 一方、ジェスチャが機能している他のレイアウトでは、1 つのジェスチャに対してさまざまなアクションを取得していました。

私は先に進み、失敗していた を取り出し、上記のコードを使用してlinearlayoutで囲みました。gestureOverlayView1 つの違いは、linearlayout 全体を .xml 内に配置したことgestureoverlayです。上記の例は、gestureoverlay何もないスタンドアロンのエンティティとして表示されており、これが問題の原因である可能性があります。

これを使用するには、次のようにオーバーレイ ビューに対してジェスチャ リスナーを登録するだけです。

((GestureOverlayView) findViewById(R.id.myGestures)).setOnTouchListener(gestureListener);

迅速な対応で申し訳ありませんが、少なくともあなたの問題に光を当てたり、ジェスチャーで作業しているときにこの癖にぶつかった他の人を助けることができれば幸いです.

BH

于 2010-06-20T20:31:33.327 に答える