2012-03-19 10 views
3

リストの並べ替え機能を持たせるために、私はthis implementationに変更しました。AndroidリストビューonTouchEventはACTION_DOWNを与えません

私の問題は、ListViewでアイテムをドラッグしようとすると、ACTION_DOWNイベントが発生しないということです。代わりに、1回のスミア・ダウン・モーションのために、2つのACTION_MOVEイベント(アクション= 0x00000002)と1つのACTION_UPイベント(アクション= 0x00000001)をこの順番で取得します。

私は同様の質問を見ましたが、誰もが反対の問題を抱えているようで、ACTION_DOWNイベントだけを取得しているようです。 これはなぜ起こっているのだと思いますか?

おかげで、 ヨエル

+0

私たちはいくつかのコードを見ることなくあなたを助けることができません – slayton

答えて

2

:-)解決

問題それは私がこのコードの小片を追加する必要が判明:

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    return super.onInterceptTouchEvent(ev); 
} 

は今、私はOnTouchEvent機能でACTION_DOWNイベントを取得し、それはすべて正常に動作します。

+0

あなたのソリューションを投稿していただきありがとうございます。あなたの答えを正しい答えとしてマークしてください。 – Joe

+0

気をつけてください。マルチタッチがおそらくこのコードをクラッシュさせます。 – neteinstein

+0

保存された私の世界人、歓声! – Nativ

2

私は同じコードを使用していました。

私の問題は、また、その何かがイベントを消費していたと私はそれが何であったか見つからするために管理していなかった...しかし、私は onTouchEventに必要なイベントにtrueを返すことonInterceptTouchEvent を使用してそれを解決するために管理

+0

返信いただきありがとうございます!確かにこれは助けになりました。私は同じ機能を呼び出すために両方のイベントを作った、私はいくつかのアクションを参照してください。 – yoel

+0

問題ありません。それがあなたの問題を解決することを願っています。 – neteinstein

+0

私はonInterceptTouchEventをオーバーライドし、興味のあるMotionEventアクション(ACTION_DOWNおよびACTION_MOVE)をフィルタリングします。これらのアクションを持つメソッドでは、onTouchEventを呼び出してfalseを返します。アクションイベントをフィルタリングしないと、super.onInterceptTouchEvent(ev)メソッドが呼び出されます。 –

関連する問題