RecyclerView滑動到最底部失敗

問題

在做一個聊天功能的時候需要用到RecyclerView來加承載消息 , 但是在新消息加入的時候 , 如果此時有圖片類的消息 , 會使得滾動到最底部失敗 , 依舊會停留到圖片所在的位置.

期初以爲是加載圖片的時候會阻礙滾動的繼續, 所以在onScrollStateChanged方法中添加了Picasso.with(ChatRoomActivity.this).resumeTag(mMsgAdapter);Picasso.with(ChatRoomActivity.this).pauseTag(mMsgAdapter); 兩個方法 , 在滾動的時候暫停加載圖片 , 然而發現在調用滾動的時候並沒有走onScrollStateChanged 回調 . 所以…沒用. 網上其他也有好多說什麼 smoothScrollBy / smoothScrollOffset / smoothToPosition 的 , 看着就不對 , 試了試果然不對…

解決方法

LinearLayoutManager linearLayoutManager = new LinearLayoutManager();
linearLayoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);

答案連接
重點是setStackFromEnd(true);
關於setStackFromEnd(true);方法 , 更多的請看這裏

這個方法是讓RecyclerView從底部開始依次顯示Item , 如果你的Item數量足夠少 , 你就會看到這樣的現象 , 所以需要將RecyclerView的高度設置爲 wrap_content :
在這裏插入圖片描述
圖片出處

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章