2015-12-22 110 views
6

我正在構建一個聊天應用程序,並使用RecyclerView呈現消息。由於這是一個聊天應用程序,最後的消息應該出現在列表的底部。爲了實現這一點,我使用以下方式的LinearManager:RecyclerView的聊天應用程序

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

而且如果會話中有很多消息,它就可以正常工作。但是,如果用戶之間只有一條或兩條消息,則RecyclerView會將它們顯示在屏幕底部,並在其上方放置空白區域。

在這種情況下是否可以在屏幕頂部顯示回收站項目?

回答

3

我創造一切正常,並添加setStackFromEnd(true)setReverseLayout(true),並用這個方法下面鏈接列表設置爲底部時,它有許多itens,該recyclerview會從底層做起,否則會跳投顯示從頂部即使評論它比屏幕的大小還要小。

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