PageList и submitList мерцают при добавлении нового элемента - PullRequest
0 голосов
/ 20 апреля 2019

Всякий раз, когда добавляется новый элемент в 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).


Пожалуйста, дайте мне какие-либо предложения по этому. Спасибо.

...