Sembra che l'impostazione del layout oggetto di RecyclerView a cliccabile = "true", consumare completamente alcuni eventi touch, particolarmente MotionEvent.ACTION_DOWN
(ACTION_MOVE e ACTION_UP poi stanno lavorando):Android: RecyclerView voce quando impostato su blocchi cliccabili eventi onTouch
item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/demo_item_container"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"> <-- this what breaks touch event ACTION_DOWN
....
</LinearLayout>
Avendo configurazione molto semplice RecyclerView in onCreate():
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list);
... //Standard recyclerView init stuff
//Please note that this is NOT recyclerView.addOnItemTouchListener()
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Log.d("", "TOUCH --- " + motionEvent.getActionMasked());
//Will never get here ACTION_DOWN when item set to android:clickable="true"
return false;
}
});
Questo comportamento o bug è previsto in RecyclerView perché è ancora un'anteprima?
PS. Voglio che questo sia selezionabile in base ai documenti per reagire allo stato premuto e avere un effetto a catena sul clic. Quando è impostato su false ACTION_DOWN funziona correttamente ma lo stato premuto non viene attivato e SelectableBackground non ha alcun effetto.
Prova impostazione 'Android: attivabile = "true"', non ho provato questo, che è il motivo per cui non sto fornendo è come una risposta, ma ACTION_DOWN per me sembra un evento correlato al fuoco. – RyanJohnstone
@Iija, hai trovato qualche soluzione? Sono bloccato sullo stesso problema da parecchi giorni ormai. – Manu
@Manu, ho finito per pensare che questo è il comportamento previsto. Dovresti essere in grado di ottenere ciò che vuoi usando recyclerView.addOnItemTouchListener(), invece .... –