--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
View で View.setOnTouchListener() で設定したリスナーの
onTouch() を呼んでいるところです
http://tools.oesf.biz/android-2.3_r1.0/xref/frameworks/base/core/java/android/view/View.java#3876
3876 public boolean dispatchTouchEvent(MotionEvent event) {
3877 if (!onFilterTouchEventForSecurity(event)) {
3878 return false;
3879 }
3880
3881 if (mOnTouchListener != null && (mViewFlags &
ENABLED_MASK) == ENABLED &&
3882 mOnTouchListener.onTouch(this, event)) {
3883 return true;
3884 }
3885 return onTouchEvent(event);
3886 }
mOnTouchListener.onTouch(this, event) の戻り値が true なら true を, false なら
onTouchEvent(event) の結果を返しています。
つまり、onTouch() の戻り値が true だとタッチイベントがその View で終わるというのは
最初のメールで書いたとおりです。
onTouch() の戻りが false の場合に呼ばれる onTouchEvent() を見ればわかりますが、
http://tools.oesf.biz/android-2.3_r1.0/xref/frameworks/base/core/java/android/view/View.java#onTouchEvent
ACTION_UP, ACTION_DOWN, ACTION_CANCEL, ACTION_MOVE
を処理しています。つまり、これより先に呼ばれる setOnTouchListener で設定
したリスナーの onTouch() メソッドにもこれらが渡されるということです。
# 家に帰ったらサンプルだせるんですけど、、、、すいませんが夜までお待ちください。
あんざい
2011年2月28日14:28 北上 <kitaka...@gmail.com>:
同じようなところで、わたしもちょっと前に悩みました。
そのときは、結局、あまりうまく行かなくて、以下のようにしました。
1)Gallery に OnItemClickListener を実装する
2)Gallery の Item 上でクリックイベントを取りたい View に OnTouchListener を実装する
3)この onTouch では false を返すが、同時にどの View のイベントだったか記録する
4)Gallery の onItemClick で、onTouch で記録した View に応じて、処理させる
というような感じで、思ったような動作を実現できました。
より正しいやり方があるんだろうと思いますが、ご参考までですぅ。
ではー。
ゆぅか。
2011年2月28日14:28 北上 <kitaka...@gmail.com>: