2012-03-12 11 views
11

私は垂直LinearLayoutを持っています。クイックジャンプバーとして機能します。したがって、幅は非常に小さく、高さはほぼ画面全体の高さに一致します。私がそれに触れ、内部を移動すると、すべてが問題ありません。つまり、私のonTouchEvent()が呼び出され、私は指の位置を得ることができます。しかし、バーはそれほど広くないので、ユーザはそのビューの外に容易にドリフトすることができる。したがって、ユーザーがビューの外にあっても移動を続ける必要があります。実際にはListViewのようなものがあります。ビューのタッチ領域を拡張する方法

私にはわからない、なぜ私のLinearLayoutの場合ListViewの場合でもListViewonTouchEvent()が呼び出されますが、ではありません。私はそれを追跡してdispatchTouchEvent()に戻しました。ここでは、ListView(外部の場合でも)のメソッドが常に呼び出されますが、LinearLayout(外部に移動する場合)のメソッドは常に呼び出されるという状況は同じです。

誰かが私にヒントを与えることができればとてもうれしいです。どうもありがとう!

ベルント

+0

[AndroidのTouchDelegateを使用してビューのクリックターゲットのサイズを拡大する方法の例はありますか?](http://stackoverflow.com/questions/1343222/is-there-an-example- –

答えて

7

あなたがAndroidのTouchDelegate機能を使用することができます。単一のビューでより大きなタッチ領域をサポートします。ここでは一例です:https://stackoverflow.com/a/1343796/636579

+2

はい、私はすでにその投稿を見ましたが、私が理解する限り、それを次の親のサイズに拡張することしかできません。つまり、画面全体の高さを取得するには、ビューツリー全体を評価する必要があります。私はListViewがこのトリックをどのように行うのか理解できませんでした。 – Bernd

5

私は、ユーザーがontouchかのonClickメソッドをパディングの領域でビューの近くをクリックする時期

android:padding="10dp" 
と呼ばれるように、あなたはすべての側面からのビューのパディングを大きくしてみてくださいする必要があることだと思います
関連する問題