忍者ブログ
2025 01
≪ 2024 12 1 2 3 45 6 7 8 9 10 1112 13 14 15 16 17 1819 20 21 22 23 24 2526 27 28 29 30 31 2025 02 ≫


*admin*entry*file*plugin| 文字サイズ  

PC系スポンサーリンク







12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
[10/01 mz]
[10/01 天ノ川きらら]
[02/19 mz]
[02/18 天ノ川きらら]
[01/02 mz]
HN: 新堂 瑞樹, mz
性別: 男性
自己紹介:
健康第一

千葉市内一部地域を対象に出張整体やってます
仔細はコチラをご参照あれ

すかいぷ: mizuki_zero
予約等はこちらからも受け付けております
*付きは必須項目です

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。




onTouch()の罠

お白湯うめぇ

 いえね、1行目は適当なことを言っておかないとtrimされるんでね。実際うまいんですけれども。

 先日述べた、FrameLayoutに格納したレイアウトからタッチイベントを受け取る形式を採用すると使うことになるonTouch()のオーバーライド。
 自分でイベントを処理したときはtrueを返しなさいよ! ってのが約束事だと思う。なので自分で処理したとこはreturn true; なんもせなんだ時はfalse返すのが正しい道であると思う。

 ACTION_UPが取得できないんですよ(結論)。

 まあ気付いたのは全部return false;してた時なんですが、自己処理したcaseでtrue返しても依然受け取れない……と思ったら受け取れた。
 いえ姉さん違うんですよ。

 まずonTouch()内でcase ACTION_DOWN:なり書く。さらに進行状況を示すステータスによるswitch分岐を書く。
 分岐(case)該当しなかった場合はfalse返してたんだが、どうやらそもそものcase ACTION_XXX: を書いた時点で「自己処理した」 = return true; と考えなきゃいかんのなこれ。どのcase文にもひっかからずonTouch末尾へ至った時に限りfalse返すんであって。気付いてみればごくごく当たり前のこと……なのか? 多分そうなのだろう。

 あるイベントの受け取り処理をした時点でreturn true; を確定。しないとその後のイベント受け取りがおかしなことになる可能性大。そういうことで理解しとこう。

参考文献:日本Androidの会 › setOnTouchListenerでACTION_UPが反応しない

拍手

PR



この記事へのコメント

この記事へコメントする








絵文字:
Vodafone絵文字 i-mode絵文字 Ezweb絵文字






この記事へのトラックバック

この記事のトラックバックURL