问题标签 [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.
android - 分页库 + 房间未获取 @relation
在我正在开发的应用程序中,我需要非常简单地从 Room 数据库中获取数据。有关系。一切都与返回的简单查询完美配合LiveData
,但是,需要检索的数据大小比预期的要大得多,并且它还包含 blob(图像),这会使查询非常慢。我已经决定使用分页库,实现如下,但由于某种原因,@relation
注释根本不再起作用。
获取的实体是一个 DTO,看起来基本上是这样的:
查询:
当查询是这样的:fun getAllEntityOtherAnotherDTOs(): LiveData<List<EntityOtherAnotherDTO>>
一切正常。结果按要求排序,并提取了所有数据,包括用 注释的列表@relation
。但是在将返回类型更改为DataSource.Factory
并且当然实现了分页适配器之后,关系返回空。
排序仍然可以正常工作,查询似乎和以前一样工作,分页也可以工作,但数据只是丢失了。表中的所有列entity
都在那里(name
等some_other_column
),关系是唯一但主要的问题。
(如果有任何相关性,我可以提供有关分页实现的更多详细信息。)
android - 如何使用分页库在 Leanback VerticalGridSupportFragment 中实现分页?
我们正在尝试使用架构组件分页库在 Leanback VerticalGridSupportFragment 中实现分页。Leanback 本身与分页库没有任何开箱即用的兼容性,因此我们扩展了它的 ObjectAdapter 类并设法很容易地实现附加和清除操作,但我们很难尝试进行修改操作工作。在内容修改操作期间,分页库的 PagedList 类使用 AsyncPagedListDiffer 计算差异,该类在内部使用 PagedStorageDiffHelper 这是一个包私有类,它在内部使用 PagedList 的包私有 PagedStorage 字段来访问实际的底层数据。因此,由于可见性限制,我们无法实现与分页库内部使用的相同逻辑。我们正在寻找一种干净而巧妙的方法来使 Leanback 与 Paging 一起工作,而无需提取和修改两者的任何内部结构。这是我们的 ObjectAdapter 实现,它支持追加和清除数据,但不支持内容修改。
有没有人设法通过分页库在 Leanback 中实现分页?
android - 当回收器视图放置在嵌套滚动视图中时,PagedListAdapter 获取所有项目
我正在使用 NestedScrollView,在其中,我有一些编辑文本和按钮,然后是 RecyclerView。当我打开活动时,所有项目都开始使用 PageKeyedDataSource 从服务器获取,并且 RecyclerView 滚动非常缓慢,最后应用程序显示 ANR。
我在 android-architecture-components 的 GitHub 存储库中查看了这个问题,发现 SmartNestedScrollView 可以解决这个问题,但是当我使用 SmartNestedScrollView 时,只有一小部分回收器视图滚动。
https://github.com/googlesamples/android-architecture-components/issues/215
布局文件.xml
谁能告诉我我还能做什么?
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
?
android - 使用 Mvvm 方法处理分页库中的错误
我刚开始使用分页库,代码工作正常,但我不知道如何处理进度条和 Toast 错误消息等错误,所以我的代码是 repo
这是我的工厂保存数据
这是我的视图模型
我的适配器工作正常,所以我要跳过适配器
和这个活动
我要再说一遍,代码在没有错误的情况下工作正常,但我想处理无连接 Toast 和隐藏进度条等错误,而且我不希望用户公开静态,我在 SearchRepository 中获得服务器响应以及到 UI 的很长的路要走,我知道我的班级命名并不完美:),有什么想法吗?
android - PagedListAdapter 重新加载没有占位符的数据
我正在使用 PagedListAdapter 并且必须在屏幕恢复时重新加载数据。
对于这种情况,我不想在加载数据时清除适配器并将其显示为空或占位符。
我想显示以前的数据,并在收到新数据后使用 diff 更新它。
但是现在当我这样做时,dataSource.invalidate()
它会立即提交一个空列表,这会导致清除适配器并显示占位符。
现在我的代码看起来像:
这里我初始化
在这里我填充适配器
并刷新它
当新数据准备好时,如何保留以前的数据并更新它?
更新:
我想要类似的东西:
dataSource.invalidate()
我的意思是在调用时不要将空数据集发布到适配器。
我知道上面提到的示例将不起作用,因为一旦提交,数据源会将更新传递给列表的同一实例并且它是完全封装的。
另外,我对数据集本身没有影响。
我尝试使用PagedList.Callback
它来知道列表何时更新。但是同样,没有机会以某种方式影响更新行为。
使用常规适配器,在收到新数据之前,我不会设置或更新它的项目。我想在这里实现类似的东西。
android - LiveData 分页列表大小始终为 0
我使用 android 分页库实现了分页。ViewModel 返回 a LiveData<PagedList<MyObject>>
,我观察到在我设置适配器的片段中,一切正常,除了当我想检查列表的大小始终为 0 时。
其中 mList 是PagedList<MyObject>
android - 用户向上滚动时如何观察分页库中的当前页码
今天,我在使用 TMDb api 的应用程序中实现了分页库。一切都很好,但我正在努力显示当前页面。
在 DataSource 类中,我有价值:
每个“loadAfter”函数都会更新。
在 ViewModel 中观察到这个 MutableLiveData,然后在 Activity 中显示。当用户向下滚动时,当前页面的数量会增加,但当用户向上滚动时,数量保持不变。
任何人都知道如何通知向上滚动?
android - Android pageKeyed数据源没有被调用
我正在尝试使用 android 分页库在我的应用程序中实现分页。但我被困在一个地方。数据源不是从工厂创建的。片段如下。
1. create 方法没有被调用。因此,该方法内部的返回不会触发。
我的数据源
API返回页码,我打算在滚动结束时加载下一页
- 什么决定了 Key in 的数据类型
DataSource.Factory<Int, News>()
我真的坚持这一点:(