Button とかの上に View を置いて,ボタンを隠してしかるのちに上の View をどかして Button を出現させる,みたいなコードを書いていたところ,Button の上に別の VIew がいるにもかかわらず, Button がタップを拾っていた.
なにを言ってるのかわからねーと思うが,それに気づいたときおれにもなにが起きているのかわからなかった.
しかたねーので,Android に強い同僚に助けを求めたところ,「そんなばかな!」という反応をしていた.
色々調べてみたけど,どうもプロパティなんかに解決策がなかったっぽいので,以下のように onTouchEvent をいじってやることで対処した.
View cover = findViewById(R.id.cover); cover.setOnTouchListener(new View.OnTouchListener() { @Override public void onTouch(View v, MotionEvent e) { return true; } });
とりあえず,これで目的の通りに動いたけど,すげー理不尽な思いをした.
もちろん iOS ならこんな問題は発生しない.
にしても,無名クラスは気持ち悪い.
無名関数でさくっとやりたい.