gpt4 book ai didi

android - 如何在 Android 中正确实现 feed(类似于 Facebook/Instagram)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:39 25 4
gpt4 key购买 nike

我是 Android 的新手。我正在尝试创建一个包含大量图像和一些元数据的社交应用程序。它有一个类似于 Facebook 上的提要的屏幕。我想让这个屏幕尽可能流畅和标准。

以下是我正在使用的库:OkHttp、Picasso、Retrofit、Gson。

现在,我正在一次获取所有 json,因为我在后端播种了虚拟值并且响应足够小。但是,将来,它将有 previous 和 next 字段来限制 json 响应。

我现在的一些问题:

  1. 我正在使用带有 OkHttp 的 Picasso。是将图像也缓存在磁盘中还是仅缓存在内存中?

  2. 缓存提要的最佳做法是什么?由于大部分内容是图像,我应该让 Picasso 处理缓存还是我自己缓存一些项目?从 JakeWharton 那里听说过 DiskLruCache 库,但没有尝试过。我应该和它一起去吗?

  3. 如何在缓存中沿任一滚动方向保留某些 Feed 内容(如 3 或 4),以便滚动看起来平滑,并且图像在进入 View 后不会开始加载。

    <
  4. 当用户滚动一次获取的所有内容时,如何使用上一个和下一个字段自动处理 json 响应。基本上我想根据基于光标滚动的内容数量触发请求。

  5. 假设有一个点赞按钮并且用户点击了它,我应该更改 UI 中点赞的数量并通过发送 POST 请求更新计数器还是应该发送请求并等待更新的计数器在 UI 中更新之前从服务器获取?

我已经看过Instamaterial的源代码了并学习了一些了不起的东西。但它并没有演示整个后端集成。

我只是想知道是否还有其他开源应用程序可以让我学习或学习。如果您知道任何教程也会有所帮助。我只想让应用体验尽可能流畅,并想学习一些最佳实践。

最佳答案

  1. 这将缓存到磁盘和内存。如果将 Picasso 设置为 Debug模式,它将显示一个指示器,描述图像从何处加载(内存/磁盘/网络)

  2. 如果您不介意 Picasso 控制内容的缓存时间等,那么让它处理缓存应该没问题。我也很确定 Picasso 使用 DiskLruCache

  3. 如果您在这里主要关心的是图像,它们将全部被缓存并且在缓存一次后不需要加载(直到更新)。您还可以向 Picasso 注册回调,以更改显示或隐藏占位符的逻辑。

  4. 我认为您正在寻找的是 ListView 上的滚动监听器(我假设您使用的是 ListView )。当它超过某个位置(5/6)时开始加载下一个 10。如果您使用的是 recyclerview,则可以使用滚动监听器中的 onScrollStateChanged 函数执行此操作,并使用 LinearLayoutManager 调用findLastVisibleItemPosition

  5. 采用哪种方法并不重要。如果您认为更新服务器计数器需要很长时间(不应该),那么最好先在本地更新它。

关于android - 如何在 Android 中正确实现 feed(类似于 Facebook/Instagram)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32693996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com