android– 如何使用新的Paging Library实现SwipeRefreshLayout

android– 如何使用新的Paging Library实现SwipeRefreshLayout,第1张

概述我有一个活动,向用户显示项目列表,并使用分页库.我的问题是,当用户向下滑动屏幕时,我无法重新加载列表,以便它再次从服务器获取数据.这是我的DataSourceFactory:publicclassCouponListDataSourceFactoryextendsDataSource.Factory{privateCouponListDataSourcedataS

我有一个活动,向用户显示项目列表,并使用分页库.我的问题是,当用户向下滑动屏幕时,我无法重新加载列表,以便它再次从服务器获取数据.

这是我的DataSource Factory:

public class CouponListDataSourceFactory extends DataSource.Factory {    private CouponListDataSource dataSource;    public CouponListDataSourceFactory(CouponRepository repository, String token, String vendorID) {        dataSource = new CouponListDataSource(repository, token, vendorID);    }    @OverrIDe    public DataSource create() {        return dataSource;    }}

以下是我创建PagedList的方法

PagedList.Config config = new PagedList.Config.Builder()                .setinitialLoadSizeHint(15)                .setPageSize(10)                .build();liveData<PagedList<Coupon>> couponsliveData = new livePagedListBuilder<>(dataSourceFactory, config).build();

解决方法:

在调用mDataSource.invalIDate()方法之后,mDataSource将失效并且新的DataSource实例将通过DataSource.Factory.create()方法创建,因此每次在DataSource.Factory.create内部提供新的DataSource()实例都很重要( )方法,每次都不要提供相同的DataSource实例.

mDataSource.invalIDate()不起作用,因为在失效后,CouponListDataSourceFactory提供了相同的,已经无效的DataSource实例.

修改后CouponListDataSourceFactory将在下面的smple中看起来,并且调用mCouponListDataSourceFactory.dataSource.invalIDate()方法将进行刷新,或者不是将dataSource实例保留在工厂内,我们可以在liveData上调用invalIDate方法< PagedList< CouponModel> &GT .getValue()了getDataSource()无效()

public class CouponListDataSourceFactory extends DataSource.Factory {private CouponListDataSource dataSource;private CouponRepository repository;private String token;private String vendorID;public CouponListDataSourceFactory(CouponRepository repository, String token, String vendorID) {    this.repository = repository;    this.token = token;    this.vendorID = vendorID;}@OverrIDepublic DataSource create() {    dataSource = new CouponListDataSource(repository, token, vendorID);    return dataSource;}}
总结

以上是内存溢出为你收集整理的android – 如何使用新的Paging Library实现SwipeRefreshLayout全部内容,希望文章能够帮你解决android – 如何使用新的Paging Library实现SwipeRefreshLayout所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存