2015-07-10 111 views
1

我有一個代表聊天列表的setStackFromEnd(true) RecyclerView。我想在列表滾動到頂部時加載較舊的消息。我設法使用onScrollListener來做到這一點。防止RecyclerView在加載其他項目時更改位置

但是,當我將項目添加到適配器messages.addAll(0, aListWithNewMessages)(消息是適配器的數據集),並調用notifyDataSetChanged(),新的列表項目(如預期)的現有前出現,(用戶想要體會不到的)移下來,我想靜靜地添加它們,以便用戶不應該看到它。

所以我想如何解決這個問題是滾動列表以某種方式以前保存的位置。

我知道這不是一個錯誤或一個意外的行爲,所以請幫忙整理一下。

謝謝

回答

1

嘗試更具體。而不是調用notifyDataSetChanged()使用notifyItemRangeInserted或類似的RecyclerView方法。這將允許RecyclerView知道該做什麼並將提供更好的用戶體驗。

+0

這是正確的解決方案。告訴RecyclerView插入項目的範圍以避免滾動RecyclerView。 –

相關問題