如何将项目添加到分页列表

卡里姆·阿塔(Karim Ata)

现在我在聊天片段中使用谷歌分页库

这是我的数据源中的初始代码:

    Disposable disposable = apiWrapper.getMessages(1, userId)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(messagesPagingResponse -> {
                        if (messagesPagingResponse.getData() != null && messagesPagingResponse.getData().getData() != null) {
                            callback.onResult(messagesPagingResponse.getData().getData(), null, messagesPagingResponse.getData().getNextPage());
                        }
                    }

    , throwable -> {
                        Log.e("throwable", throwable.getLocalizedMessage());
                    });
    compositeDisposable.add(disposable);

在聊天片段中,我观察了列表

        viewModel.getLiveMessages().observe(this, this::setChatList);




 private void setChatList(PagedList<Message> messages) {
        this.messages = messages;
        ChatPagingAdapter chatPagingAdapter = (ChatPagingAdapter) binding.messagesRecyclerView.getAdapter();
        if (chatPagingAdapter != null){
            chatPagingAdapter.submitList(this.messages);
        }
    }

它工作良好,直到iam尝试向分页列表中添加新消息,从而向我显示此错误

E/error: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.UnsupportedOperationException

当我收到新消息时,我尝试将其添加为

                            messages.add(0, message);
网路

分页库当前不允许您向PagedAdapter添加项目,就像对普通RecyclerView所做的那样。所有更新都必须来自数据源。

我所做的类似的情况,你是使用客房坚持所有的聊天信息,并建立了PagedList LiveData一个DataSource.FactoryDao(数据访问对象)。每当有新消息时,您要做的就是保留该消息,然后会议室将更新发送给您,PagedList Livedata然后您的Chats RecyclerView更新会相应更新。

如果您不熟悉Room,可以从官方文档中了解更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将项目从列表框添加到文本框C#

来自分类Dev

如何将列表框项目添加到设置?

来自分类Dev

如何将项目从数据表添加到asp.net中的列表

来自分类Dev

如何将图像控件和列表控件添加到枢纽项目?

来自分类Dev

如何将项目添加到数组列表的数组

来自分类Dev

如何将两个项目添加到此可观察列表中?

来自分类Dev

如何将项目添加到列表并返回新列表

来自分类Dev

我如何将项目添加到选定的追加列表jQuery

来自分类Dev

如何将更多项目添加到列表视图xamarin.android

来自分类Dev

如何将项目添加到IEnumerable中填充的对象的类列表中

来自分类Dev

如何将txt中的所有项目添加到列表框中?

来自分类Dev

如何将分页添加到表(Django)

来自分类Dev

如何将项目添加到IEnumerable中填充的对象的类列表中

来自分类Dev

如何将一个项目添加到列表框的顶部

来自分类Dev

如何将项目从列表框添加到文本框C#

来自分类Dev

如何将项目添加到数组列表的数组

来自分类Dev

如何将项目添加到词典中的列表中

来自分类Dev

如何将项目作为树列表添加到ComboBox

来自分类Dev

如何将项目从组合框添加到列表集合

来自分类Dev

如何将列表中的所有项目添加到变量中?

来自分类Dev

如何将更多项目添加到列表视图xamarin.android

来自分类Dev

如何将通用类型的项目添加到列表中?

来自分类Dev

如何将项目添加到 vue.js 中的列表

来自分类Dev

如何将项目添加到列表框?

来自分类Dev

如何将项目添加到列表中仅 24 次而不是 96 次?

来自分类Dev

如何将项目添加到列表

来自分类Dev

如何将项目添加到列表列表 C#

来自分类Dev

IEnumerable 如何将项目添加到列表

来自分类Dev

如何将项目列表添加到特定的现有列表?

Related 相关文章

  1. 1

    如何将项目从列表框添加到文本框C#

  2. 2

    如何将列表框项目添加到设置?

  3. 3

    如何将项目从数据表添加到asp.net中的列表

  4. 4

    如何将图像控件和列表控件添加到枢纽项目?

  5. 5

    如何将项目添加到数组列表的数组

  6. 6

    如何将两个项目添加到此可观察列表中?

  7. 7

    如何将项目添加到列表并返回新列表

  8. 8

    我如何将项目添加到选定的追加列表jQuery

  9. 9

    如何将更多项目添加到列表视图xamarin.android

  10. 10

    如何将项目添加到IEnumerable中填充的对象的类列表中

  11. 11

    如何将txt中的所有项目添加到列表框中?

  12. 12

    如何将分页添加到表(Django)

  13. 13

    如何将项目添加到IEnumerable中填充的对象的类列表中

  14. 14

    如何将一个项目添加到列表框的顶部

  15. 15

    如何将项目从列表框添加到文本框C#

  16. 16

    如何将项目添加到数组列表的数组

  17. 17

    如何将项目添加到词典中的列表中

  18. 18

    如何将项目作为树列表添加到ComboBox

  19. 19

    如何将项目从组合框添加到列表集合

  20. 20

    如何将列表中的所有项目添加到变量中?

  21. 21

    如何将更多项目添加到列表视图xamarin.android

  22. 22

    如何将通用类型的项目添加到列表中?

  23. 23

    如何将项目添加到 vue.js 中的列表

  24. 24

    如何将项目添加到列表框?

  25. 25

    如何将项目添加到列表中仅 24 次而不是 96 次?

  26. 26

    如何将项目添加到列表

  27. 27

    如何将项目添加到列表列表 C#

  28. 28

    IEnumerable 如何将项目添加到列表

  29. 29

    如何将项目列表添加到特定的现有列表?

热门标签

归档