前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

RecyclerViewのTouchイベント処理にはaddOnItemTouchListenerを使った方がいい。

setOnTouchListenerがあるのだけど、子ビューのイベント定義がしてあると発動しないか、遅れる。継承クラスを作ってInterceptTouchEventを拾う方法もあるが、この場合はACTION_UPが発生しない。
addOnItemTouchListenerならonInterceptTouchEventもonTouchEventも拾ってくれる。

mListView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
            @Override
            public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
                return false;
            }
            @Override
            public void onTouchEvent(RecyclerView rv, MotionEvent e) {
            }

            @Override
            public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

            }
        });

つうかListener系のメソッド探すときに"set"まで入力する癖がついてるからaddとかで提供されるとなかなか気づかないんだよな。