にGridView
プレビュー画像をロードする場所がありGridView
ます。プレビューが表示されている間、スクロールを無効にしたいと考えています。私のコードは次のようになります。
grid.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
preview.setVisibility(View.GONE);
return true;
} else if(event.getAction() == MotionEvent.ACTION_MOVE) {
Log.d("test", "isShown: " + preview.isShown());
return preview.isShown();
}
return false;
}
});
非常に単純ですが、これは完全には機能しません。イベントを消費することでスクロールが無効になりますが、最初の移動イベントは で実行されるたびに取得され、GridView
一度だけいくつかのピクセルが移動するようです。
私を混乱させているのは、可視に設定しisShown: false
た後、logcat にメッセージが表示されないpreview
ことです。これまでのところ、これも明らかな反応条件ではありません。これは、リスナーが咳をしたすべてのイベントがtrue
期待どおりに返されることを意味します。
私はこれをほとんど重複して読みました。
しかし、それを無効にする方法にはポイントがあります。私はそれを自分で考え出しました。