2011/10/15

子Viewのタッチイベントを取得する

子Viewの実装の有無に関わらず、親となるViewGroupでタッチイベントを取得したい時ってありますよね。
そんな時に便利なのがViewGroup#onInterceptTouchEventというメソッド。

これを利用するには下のサンプルのようにViewGroupを継承した独自ViewGroupクラスを作成し、その中のonInterceptTouchEventを上書きする必要があります。
ひとまず流れだけ。


ちなみにこれをXMLから指定する場合は
こんな感じで使います。

2011/10/10

LayoutInflaterでツボにはまる

LayoutInflaterを利用する際は こんな感じで利用していると思いますが、ここで落とし穴。

LayoutInflater#inflate(int resource, ViewGroup root, boolean attachToRoot)
これの第2引数ViewGroupにnullを指定すると、item.xmlのパラメーターが自動でwrap_contentになってしまう。


item.xml
こんな風に指定してあったパラメーターが実際の表示上では こんなことに。。。


面倒臭くてもinflateでmatch_parent(fill_parent)パラメーターが必要なViewをもってくる時は、第2引数の親となるViewGroupをきっちり指定しましょう。