2015-06-04 8 views
5

Per attivare la chat in stile scorrimento in un elenco Vista, possiamo usare le seguenti proprietà:Configurare RecyclerView a lavorare come una chat

<ListView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    .... 
    android:stackFromBottom="true" 
    android:transcriptMode="normal" /> 

Si tratta di un modo semplice ed efficace per creare una chat. Come possiamo fare la stessa cosa con una vista riciclatore? Non ho trovato alcuna soluzione semplice.

saluti,

+0

si può provare la mia risposta: http://stackoverflow.com/a/43647835/6482350 – DysaniazzZ

risposta

12

RecyclerView ha un attributo stackFromEnd.

<android.support.v7.widget.RecyclerView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/recyclerView" 
     android.support.v7.recyclerview:stackFromEnd ="true"/> 

Oppure si può fare attraverso il codice

mLayoutManager = new LinearLayoutManager(getActivity()); 
mLayoutManager.setReverseLayout(true); 
mLayoutManager.setStackFromEnd(true); 
+0

Ha funzionato sulla vostra applicazione? –

+0

Sì. Grazie. Ha funzionato. Questo è l'equivalente di stackFromBottom. Ma quale proprietà ha l'effetto simile di Android: transcriptMode? Garantisce che la listview scorra solo se l'utente sta cercando l'ultimo elemento del set di dati. –

+0

Penso che un effetto simile a transcriptMode possa essere ottenuto attraverso il codice usando 'setReverseLayout()'. Controlla la mia modifica. –

1

aggiunge questa due linee di xml

app:stackFromEnd="true" 
app:reverseLayout="true" 
0

aggiungere queste affermazioni;

<android.support.v7.widget.RecyclerView 
        android:id="@+id/chat_list_view" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:drawSelectorOnTop="false" 
        android:listSelector="@android:color/transparent" 
        android:paddingLeft="4dp" 
        android:paddingRight="4dp" 
        android:scrollbarStyle="outsideOverlay" 
        android:transcriptMode="normal" /> 

e aggiungere in Layout Manager

layoutManager.setStackFromEnd(true);