2015-12-22 14 views
6

Buduję aplikację do czatu i prezentuję wiadomości za pomocą aplikacji RecyclerView. Ponieważ jest to aplikacja czatu, ostatnie wiadomości powinny pojawić się na dole listy. Aby to osiągnąć, używam LinearManager w następujący sposób:RecyclerView for chat app

LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); 
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL); 
    layoutManager.setStackFromEnd(true); 
    layoutManager.setSmoothScrollbarEnabled(false); 

Działa dobrze, jeśli w konwersacji jest wiele wiadomości. Jeśli jednak między użytkownikami jest tylko jedna lub dwie wiadomości, RecyclerView wyświetla je na dole ekranu i umieszcza nad nimi biały obszar.

Czy w tym przypadku można wyświetlić elementy recyklingu u góry ekranu?

Odpowiedz

3

tworzę wszystko normalne i dodaje setStackFromEnd(true), setReverseLayout(true) i używać tej metody mieszek do listy ustawione na dnie, gdy mają wiele itens The recyclerview rozpocznie się od dołu, inaczej będzie wynos pokazują komentarze z góry, nawet jeśli ma mniejszą niż rozmiar ekranu.

//method will set the recyclerview to the end, in other words its going to the 
//end of the recyclerview, starting from the bottom. 
//call scrollToBottom() after add your items in the adapter 
public void scrollToBottom(){ 
    recyclerView.scrollVerticallyTo(0); 
} 

RecyclerView Java

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.activity_comments_recycler_view); 
LinearLayoutManager manager = LinearLayoutManager(this); 
manager.setStackFromEnd(true);   
manager.setReverseLayout(true);   
recyclerView.setLayoutManager(manager); 

RecyclerView XML

<RecyclerView 
    android:id="@+id/activity_comments_recycler_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

enter image description here