android - 从 ListView/RecyclerView 处理逻辑显示项目详细信息的最佳方式/UX 是什么

标签 android listview android-recyclerview user-experience

我正在开发一个只有两个 Activity 的简单应用。

  • 第一个 Activity (名为 StudentListActivity)有一个 recyclerview 显示学生列表。每个项目都是一个学生,列表学生数据将从服务器获取。
  • 第二个 Activity (名为 StudentDetailActivity)是特定学生的详细信息,当单击 StudentListActivity 中的 recyclerview 项目时启动。

让我感到困惑的是获取学生详细数据的方式。我从两个方面考虑:

  1. 当单击 StudentListActivity 中的 recyclerview 项目时,我会将整个学生对象传递给 StudentDetailActivity 并定期显示它。这种方式将快速且始终可用,但如果学生不再存在但仍会在 StudentDetailActivity 上显示详细信息,则会出错。
  2. 我只传递学生的 ID 并调用 api 到服务器,以便根据该 ID 获取学生信息。这种方式可以避免第一种方式的情况,因为我们调用服务器并确保学生存在于数据库中。但是调用api需要时间,让用户等待,可能会影响用户体验。

谁能告诉我针对这种情况的最佳方式/UX 是什么,或者是否还有其他解决方案。请建议我!

谢谢,

最佳答案

从用户体验的角度来看,我会做以下事情:

假设在您的 RecyclerView 中,每个项目都包含名称和图像。当您导航到特定学生的详细 Activity 时,我会(连同 id)将名称和图像 URL 传递给其他 Activity 并实现 Activity Transitions .类似的东西:

Source

从那时起,我将使用 id 来检索其余信息。我建议不要通过 Intent 发送大量数据,因为它们不是为此目的而设计的。此外,如果您使 Activity 依赖于对象而不是 ID 来启动,您将很难启用直接应用链接并允许用户从您的应用共享页面。还要考虑 Activity 生命周期,以及配置更改时会发生什么。查看更多here , 见下图:

Source

从架构的角度来看,我建议如下:

实现本地数据库,并确保正确缓存您的网络请求。这将使您能够更快地获得结果和离线就绪的应用程序。在您的 UI 和数据源之间,按照以下方式实现 Repository 模式:

Source

关于android - 从 ListView/RecyclerView 处理逻辑显示项目详细信息的最佳方式/UX 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48075217/

相关文章:

android - 检测 Android JNI 代码中的 native 内存泄漏

android - google 和 maven 存储库之间的 play-services-measurement-base 版本不匹配

android - Android 中的 OCR(图像转文本)

android - ViewPager 中的 Fragment 失去了它的 View

android - RecyclerView 概念如何在 Android 上运行?

android - 夜间模式颜色不适用于回收站 View 背景

android - 在中国使用 Google Maps Android API

java - Android:检查一个复选框会检查同一行中的所有复选框

c# - ListView 的数据模板中的单选按钮组

android - Viewpager Inside Recyclerview As Item 使用 Viewpager 防止滚动 Recyclerview