2016-04-23 12 views
5

Ho un RecyclerView nella mia app e visualizza i dati. Voglio disabilitare gli eventi touch dell'utente di RecyclerView. Ho provato il codice qui sotto ma non funziona.disabilita gli eventi touch di RecyclerView (per evitare tocchi utente)?

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

Per favore aiutatemi.

+0

È possibile controllare questo per evento di tocco su ogni elemento. http://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnItemTouchListener.html – androidnoobdev

+0

Estendere RecyclerView e Override di onTouch e onInterceptTouchEvent per restituire sempre false. –

risposta

4

Come ho avuto un caso d'uso simile un paio di giorni fa e sono imbattuto su questa domanda solo ora:
è possibile aggiungere o

al tuo RecyclerView .

Esempio con 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; 
    } 
}); 

ho consumato l'evento di tocco, mentre il mio SwipeRefreshLayout stava facendo lavoro di fondo interrogando swipeLayout.isRefreshing().

0

È possibile eseguire l'override del metodo di canScrollHorizontally LinearLayoutManager

getRecyclerView().setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false) { 
    @Override 
    public boolean canScrollHorizontally() { 
     return false; 
    } 
}); 
Problemi correlati