2

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期待どおりに返されることを意味します。

私はこれをほとんど重複して読みました。

しかし、それを無効にする方法にはポイントがあります。私はそれを自分で考え出しました。

4

0 に答える 0