问题标签 [android-paging-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
712 浏览

android - 分页库 + 房间未获取 @relation

在我正在开发的应用程序中,我需要非常简单地从 Room 数据库中获取数据。有关系。一切都与返回的简单查询完美配合LiveData,但是,需要检索的数据大小比预期的要大得多,并且它还包含 blob(图像),这会使查询非常慢。我已经决定使用分页库,实现如下,但由于某种原因,@relation注释根本不再起作用。

获取的实体是一个 DTO,看起来基本上是这样的:

查询:

当查询是这样的:fun getAllEntityOtherAnotherDTOs(): LiveData<List<EntityOtherAnotherDTO>>一切正常。结果按要求排序,并提取了所有数据,包括用 注释的列表@relation。但是在将返回类型更改为DataSource.Factory并且当然实现了分页适配器之后,关系返回空。

排序仍然可以正常工作,查询似乎和以前一样工作,分页也可以工作,但数据只是丢失了。表中的所有列entity都在那里(namesome_other_column),关系是唯一但主要的问题。

(如果有任何相关性,我可以提供有关分页实现的更多详细信息。)

0 投票
1 回答
1341 浏览

android - 如何使用分页库在 Leanback VerticalGridSupportFragment 中实现分页?

我们正在尝试使用架构组件分页库在 Leanback VerticalGridSupportFragment 中实现分页。Leanback 本身与分页库没有任何开箱即用的兼容性,因此我们扩展了它的 ObjectAdapter 类并设法很容易地实现附加清除操作,但我们很难尝试进行修改操作工作。在内容修改操作期间,分页库的 PagedList 类使用 AsyncPagedListDiffer 计算差异,该类在内部使用 PagedStorageDiffHelper 这是一个包私有类,它在内部使用 PagedList 的包私有 PagedStorage 字段来访问实际的底层数据。因此,由于可见性限制,我们无法实现与分页库内部使用的相同逻辑。我们正在寻找一种干净而巧妙的方法来使 Leanback 与 Paging 一起工作,而无需提取和修改两者的任何内部结构。这是我们的 ObjectAdapter 实现,它支持追加和清除数据,但不支持内容修改。

有没有人设法通过分页库在 Leanback 中实现分页?

0 投票
1 回答
672 浏览

android - 当回收器视图放置在嵌套滚动视图中时,PagedListAdapter 获取所有项目

我正在使用 NestedScrollView,在其中,我有一些编辑文本和按钮,然后是 RecyclerView。当我打开活动时,所有项目都开始使用 PageKeyedDataSource 从服务器获取,并且 RecyclerView 滚动非常缓慢,最后应用程序显示 ANR。

我在 android-architecture-components 的 GitHub 存储库中查看了这个问题,发现 SmartNestedScrollView 可以解决这个问题,但是当我使用 SmartNestedScrollView 时,只有一小部分回收器视图滚动。

https://github.com/googlesamples/android-architecture-components/issues/215

布局文件.xml

谁能告诉我我还能做什么?

0 投票
0 回答
214 浏览

android - Limiting the number of loaded items in memory with paging library

I'm using paging library to load and display the data from server:

I'm also using the PageKeyedDataSource for DataSourceFactory

And when I scroll the list for a long time I have lots of items in memory. I also know that since Paging 2.1.0-alpha01 we have page dropping, PagedList.Config.Builder.setMaxSize() for limiting the number of loaded items in memory. But this feature doesn't work with PageKeyedDataSource. Are there other solutions for limiting the number of loaded items in memory which can work with PageKeyedDataSource?

0 投票
0 回答
785 浏览

android - 使用 Mvvm 方法处理分页库中的错误

我刚开始使用分页库,代码工作正常,但我不知道如何处理进度条和 Toast 错误消息等错误,所以我的代码是 repo

这是我的工厂保存数据

这是我的视图模型

我的适配器工作正常,所以我要跳过适配器

和这个活动

我要再说一遍,代码在没有错误的情况下工作正常,但我想处理无连接 Toast 和隐藏进度条等错误,而且我不希望用户公开静态,我在 SearchRepository 中获得服务器响应以及到 UI 的很长的路要走,我知道我的班级命名并不完美:),有什么想法吗?

0 投票
1 回答
1917 浏览

android - PagedListAdapter 重新加载没有占位符的数据

我正在使用 PagedListAdapter 并且必须在屏幕恢复时重新加载数据。
对于这种情况,我不想在加载数据时清除适配器并将其显示为空或占位符。
我想显示以前的数据,并在收到新数据后使用 diff 更新它。
但是现在当我这样做时,dataSource.invalidate()它会立即提交一个空列表,这会导致清除适配器并显示占位符。

现在我的代码看起来像:

这里我初始化

在这里我填充适配器

并刷新它

当新数据准备好时,如何保留以前的数据并更新它?

更新:
我想要类似的东西:

dataSource.invalidate()我的意思是在调用时不要将空数据集发布到适配器。

我知道上面提到的示例将不起作用,因为一旦提交,数据源会将更新传递给列表的同一实例并且它是完全封装的。
另外,我对数据集本身没有影响。

我尝试使用PagedList.Callback它来知道列表何时更新。但是同样,没有机会以某种方式影响更新行为。

使用常规适配器,在收到新数据之前,我不会设置或更新它的项目。我想在这里实现类似的东西。

0 投票
2 回答
2815 浏览

android - LiveData 分页列表大小始终为 0

我使用 android 分页库实现了分页。ViewModel 返回 a LiveData<PagedList<MyObject>>,我观察到在我设置适配器的片段中,一切正常,除了当我想检查列表的大小始终为 0 时。

其中 mList 是PagedList<MyObject>

0 投票
1 回答
625 浏览

android - 用户向上滚动时如何观察分页库中的当前页码

今天,我在使用 TMDb api 的应用程序中实现了分页库。一切都很好,但我正在努力显示当前页面。

在 DataSource 类中,我有价值:

每个“loadAfter”函数都会更新。

在 ViewModel 中观察到这个 MutableLiveData,然后在 Activity 中显示。当用户向下滚动时,当前页面的数量会增加,但当用户向上滚动时,数量保持不变。

任何人都知道如何通知向上滚动?

0 投票
0 回答
101 浏览

android - 使用 Vertical RecyclerView 拖动滚动条(快速滚动)时始终位于顶部偏移的项目

我想在我的大型数据集 RecyclerView 中实现这样的快速滚动,我正在使用com.simplecityapps:recyclerview-fastscroll这个库来快速滚动。

快速滚动大数据集

顶部偏移的项目,这是我在快速滚动时想要做的。

这可以在顶部滚动:scrollToPositionWithOffset(position, 0),但它是由代码手动触发的。

我想要这个带有滚动条。

我曾尝试使用 LinearSnapHelper,但这对 Scrollbar 没有帮助。

我正在使用 Room 和 Paging Library 懒惰地加载数据。

谢谢。

0 投票
0 回答
239 浏览

android - Android pageKeyed数据源没有被调用

我正在尝试使用 android 分页库在我的应用程序中实现分页。但我被困在一个地方。数据源不是从工厂创建的。片段如下。

1. create 方法没有被调用。因此,该方法内部的返回不会触发。

我的数据源

API返回页码,我打算在滚动结束时加载下一页

  1. 什么决定了 Key in 的数据类型DataSource.Factory<Int, News>()

我真的坚持这一点:(