1
paradoxs 2020-07-18 16:34:05 +08:00
微信那个是辣鸡方案,就是普通的提前加载,半屏了就去加载。。 只要你拖动快一点,就会有“加载感”了。
telegram 的加载方案才是无感的。 |
2
wnpllrzodiac 2020-07-18 16:51:00 +08:00 via Android
怎么做到无感?带宽无限?拉的快一定会没数据啊
|
3
CSM 2020-07-18 16:56:43 +08:00 via Android
微信的好用吗。。Telegram 的才是无感吧
|
4
DeweyReed 2020-07-18 18:32:27 +08:00
Paging 搭配 Room,要动态删除你直接删 Room 里的数据就可以。不想存到本地数据库里,可以用 Room 的 inMemoryDatabase 。
|
5
chillwind OP @DeweyReed 用 paging 刷新时也会卡一下的,感觉是靠 SCROLL_STATE_IDLE 触发的加载数据,没有 onScrolled 里做的加载顺滑
|
6
DeweyReed 2020-07-18 21:08:04 +08:00
@chillwind 可以用 paging 的 placeholder 、增加 page size 、限制 RecyclerView 的最大滑动速度。Paging 是通过 adapter 操作的,不直接和 RecyclerView 通信。
|
7
chillwind OP @DeweyReed 今天试了一下 paging + room,通过 onZeroItemsLoaded 初始化数据,onItemAtEndLoaded 拉取后面的数据,测试基本功能可用,但是 onItemAtFrontLoaded 数据会有问题,onItemAtFrontLoaded 开始就会执行,而且 RecyclerView 定位到 onItemAtFrontLoaded 的第一条数据,而不是 onZeroItemsLoaded 的第一条数据。不知道是不是我对 PagedList.BoundaryCallback 理解不对,还是有别的方法?
|
8
DeweyReed 2020-07-19 22:12:20 +08:00
@chillwind 可以考虑不用 onItemAtFrontLoaded,只用 onZeroItemsLoaded 和 onItemAtEndLoaded,自己管理第几页。可以参考官方 demo 。
说实话 Paging 的 API 其实挺怪的。。期待 Paging3 吧。 |
9
hfl1995 2020-07-22 10:13:57 +08:00
没办法做到完全无感,telegram 也能看到 loading,除非修改滑动的速率
|
10
fromzero 2020-07-25 11:04:13 +08:00
加一个 loadingView 的 itemType, 然后在 onBindViewHolder 的时候调用加载更多数据。然后移除 这个 loadingView
|