2015-06-04 6 views
5

Um Chat-Stil Scrollen in einer Listenansicht aktiviert haben, können wir die folgenden Eigenschaften verwenden:konfigurieren RecyclerView als Chat zu arbeiten

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

Es ist eine einfache und effiziente Möglichkeit, um einen Chat zu erstellen. Wie können wir das Gleiche mit einer Recycler-Ansicht machen? Ich habe keine einfache Lösung gefunden.

Grüße,

+0

können Sie meine Antwort versuchen: http://stackoverflow.com/a/43647835/6482350 – DysaniazzZ

Antwort

12

RecyclerView hat ein stackFromEnd Attribut.

<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"/> 

Oder man kann es durch Code tun

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

Hat es auf Ihrer Anwendung? –

+0

Ja. Danke. Es hat funktioniert. Dies entspricht dem StackFromBottom. Aber welche Eigenschaft hat den ähnlichen Effekt von android: transcriptMode? Es garantiert, dass die Listenansicht nur dann nach unten scrollt, wenn der Benutzer auf das letzte Element des Datensatzes schaut. –

+0

Ich denke, dass ähnlicher Effekt zu transcriptMode durch Code erreicht werden kann, indem 'setReverseLayout()' verwendet. Schau dir meinen Schnitt an. –

1

hinzufügen, um diesen zweizeilige

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

diese Aussagen hinzuzufügen;

<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" /> 

und fügen Sie in Layout-Manager

layoutManager.setStackFromEnd(true);