2

うまくいけば、誰かが助けることができます。

OnTouchListener()をビューにアタッチしようとしていますが、その子です。ネイティブAndroidでは、これはsetOnTouchListener()メソッドを使用します。

Xamarinのドキュメントでは、c#にデリゲートを使用することを提案しているようです。しかし、これはうまくいかないようです。オンタッチリスナーをビューとその子にアタッチするための基本的なデモンストレーションを誰かが手伝ってもらえますか?

以下は私が試したコードです。

    myView.Touch += (sender,e)=>
    {
        // Code to be executed
    }

    myView.Click += (sender,e)=>
    {
       // Code to be executed
    }
4

1 に答える 1

1

しかし、あなたのサンプルは私のために働きます。Androidでは、子ビューがタッチイベントを処理する場合、親は処理しません。したがって、上記のようにタッチイベントに登録することにより、子コントロールにタッチしても、子がイベントを処理しているため何も起こりません。親ビューと子ビューのタッチリスナーを参照してください。これを修正する3つの方法があります。

  1. 親とすべての子の代理人を登録します(ただし、それは避けたいようです...)
  2. 親ビュークラスでonInterceptTouchEventを実装します。これは、カスタムビュークラスが必要であることを意味します。http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)
  3. SetOnTouchListenerはまだM4Aに存在し、オプション1と同じ効果で、親とすべての子で使用できます。
于 2012-05-28T16:17:35.137 に答える