Всякий раз, когда добавляется новый элемент в pagelistAdapter, он мерцает. Это приложение для чата.
Код ViewModel.
UpViewModel(application:Application):AndroidViewModel(application) {
val mDb = AppDatabase.getAppDatabase(application).userModel()
fun setChatMessageReadData(Id: String):LiveData<PagedList<Item>> {
val pagedListConfig = PagedList.Config.Builder().setEnablePlaceholders(true)
.setPrefetchDistance(10)
.setInitialLoadSizeHint(15)
.setPageSize(15).build()
val factory: DataSource.Factory<Int, Item> = mDb.readItem(Id)
val pagedListBuilder: LivePagedListBuilder<Int, Item>
pagedListBuilder = LivePagedListBuilder<Int, Item>(factory, pagedListConfig)
return pagedListBuilder.build()
}
Код DAO.
@Query("SELECT * FROM Item where id=:id")
fun readItem(id:String): DataSource.Factory<Int, Item>
Наблюдатель имеет значение
val Observer = Observer<PagedList<Item>> { item ->
try {
if (item!!.size == 0) {
submitList(item)
return@Observer
}
submitList(item)
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
}
Каждый раз устанавливайте позицию для использования приведенного ниже кода Всякий раз, когда получаете новые сообщения.scrollToPosition (itemcount - 1).
Пожалуйста, дайте мне какие-либо предложения по этому. Спасибо.