我正在使用 Android 分页库 androidx.paging:paging-runtime:2.0.0 来构建列表。问题是,当我想构建 PagedList ( LivePagedList 效果很好)时,我有一个错误:

java.lang.IllegalArgumentException: MainThreadExecutor required
at androidx.paging.PagedList$Builder.build(PagedList.java:355)

但我没有看到 setMainThreadExecutor 方法可用,只有 setFetchExecutor :
    val result = list.filter { it.desc?.contains(query, ignoreCase = true) == true }
    val dataSource = MyDataSource(result)
    val mainHandler = Handler(Looper.getMainLooper())
    val pagedList: PagedList<MyDetails> = PagedList.Builder<Int, MyDetails>(dataSource, 500).setFetchExecutor { mainHandler.post(it) }
                .build()

谁知道这里有什么问题?

最佳答案

阅读源代码,如果使用 setNotifyExecutor() 设置的执行程序为空,则会出现此异常。我看你不这么叫。

我同意异常消息有点误导。

对于源引用,我使用了 this 。它并不完全相同,但我相信 androidx 版本在这里的行为相同。

10-08 17:54