2016-04-23 67 views
5

私は自分のアプリにRecyclerViewを持っており、データを表示しています。 RecyclerViewのユーザータッチイベントを無効にしたい私は以下のコードを試しましたが、うまくいきません。RecyclerViewのタッチイベントを無効にする(ユーザーの接触を防止する)?

recyclerView.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return false; 
    } 
}); 

私を助けてください。

+0

を上書きすることができます。 http://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnItemTouchListener.html – androidnoobdev

+0

私はRecyclerViewを拡張し、常にfalseを返すようにonTouchとonInterceptTouchEventをオーバーライドします。 –

答えて

4

私は数日前に類似したユースケースを持っていたし、ちょうど今この質問につまずいたよう:
あなたRecyclerViewに

のいずれかを追加することができます。

RecyclerView.SimpleOnItemTouchListenerを使用した例:

recyclerView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() { 
    @Override 
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 
     // true: consume touch event 
     // false: dispatch touch event 
     return true; 
    } 
}); 

SwipeRefreshLayoutswipeLayout.isRefreshing()を照会することにより、バックグラウンドの仕事をしていた間、私はタッチイベントを消費していました。

0

あなたは、各項目のタッチイベントのためにこれを確認することができますLinearLayoutManager canScrollHorizontally方法

getRecyclerView().setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false) { 
    @Override 
    public boolean canScrollHorizontally() { 
     return false; 
    } 
}); 
関連する問題