什么是最好的 way/UX 来处理来自 ListView/RecyclerView 的逻辑显示项目的详细信息
What is the best way/UX to handle logic show item's detail from ListView/RecyclerView
我正在开发一个只有两个 activity 的简单应用程序。
- 第一个activity(名为StudentListActivity)有一个recyclerview 显示学生列表。每一项都是一个学生,列表学生数据将从服务器获取。
- 第二个activity(名为StudentDetailActivity)是特定学生的详细信息,当点击StudentListActivity 中的recyclerview 项目时启动。
让我感到困惑的是获取学生详细信息的方式。我从两个方面考虑:
- 当点击 StudentListActivity 中的 recyclerview 项目时,我会将整个学生对象传递给 StudentDetailActivity 并定期显示它。这种方式将快速且始终可用,但如果学生不再存在但仍会在 StudentDetailActivity 上显示详细信息,则会出错。
- 我只传递学生的 ID 并调用 api 到服务器,以便根据该 ID 获取学生信息。这种方式可以避免第一种方式的情况,因为我们调用服务器并确保学生存在于数据库中。但是调用需要时间api,让用户等待,可能会影响用户体验。
任何人都可以告诉我什么是最好的 way/UX 对于这种情况,或者还有其他解决方案。请建议我!
谢谢,
我开发的大部分应用程序都遇到过这种情况。我总是喜欢做的是,当用户访问学生详细信息 activity 时,如果可用则从缓存中加载并并行触发 Web 服务调用。一旦服务器响应可用,就用最新信息更新学生详细信息 activity 并将其存储在缓存中。这样过渡会很顺畅,用户不会有等待的感觉...
从用户体验的角度来看,我会做以下事情:
假设在您的 RecyclerView 中,每个项目都包含名称和图像。当您导航到特定学生的详细信息 activity 时,我会(沿着 id)将名称和图像 URL 传递给另一个 activity 并实施 Activity Transitions.大致如下:
从那时起,我将使用 id 来检索其余信息。我建议不要通过意图发送大量数据,因为它们不是为此目的而设计的。此外,如果您使 Activity 依赖于对象而不是 ID 来启动,您将很难启用直接应用链接并允许用户从您的应用共享页面。还要考虑 Activity 生命周期,以及配置更改时会发生什么。多看here,看下图:
从架构的角度来看,我建议如下:
实施本地数据库,并确保正确缓存您的网络请求。这将使您能够更快地获得结果和离线就绪的应用程序。在您的 UI 和数据源之间,按照以下行实施存储库模式:
我正在开发一个只有两个 activity 的简单应用程序。
- 第一个activity(名为StudentListActivity)有一个recyclerview 显示学生列表。每一项都是一个学生,列表学生数据将从服务器获取。
- 第二个activity(名为StudentDetailActivity)是特定学生的详细信息,当点击StudentListActivity 中的recyclerview 项目时启动。
让我感到困惑的是获取学生详细信息的方式。我从两个方面考虑:
- 当点击 StudentListActivity 中的 recyclerview 项目时,我会将整个学生对象传递给 StudentDetailActivity 并定期显示它。这种方式将快速且始终可用,但如果学生不再存在但仍会在 StudentDetailActivity 上显示详细信息,则会出错。
- 我只传递学生的 ID 并调用 api 到服务器,以便根据该 ID 获取学生信息。这种方式可以避免第一种方式的情况,因为我们调用服务器并确保学生存在于数据库中。但是调用需要时间api,让用户等待,可能会影响用户体验。
任何人都可以告诉我什么是最好的 way/UX 对于这种情况,或者还有其他解决方案。请建议我!
谢谢,
我开发的大部分应用程序都遇到过这种情况。我总是喜欢做的是,当用户访问学生详细信息 activity 时,如果可用则从缓存中加载并并行触发 Web 服务调用。一旦服务器响应可用,就用最新信息更新学生详细信息 activity 并将其存储在缓存中。这样过渡会很顺畅,用户不会有等待的感觉...
从用户体验的角度来看,我会做以下事情:
假设在您的 RecyclerView 中,每个项目都包含名称和图像。当您导航到特定学生的详细信息 activity 时,我会(沿着 id)将名称和图像 URL 传递给另一个 activity 并实施 Activity Transitions.大致如下:
从那时起,我将使用 id 来检索其余信息。我建议不要通过意图发送大量数据,因为它们不是为此目的而设计的。此外,如果您使 Activity 依赖于对象而不是 ID 来启动,您将很难启用直接应用链接并允许用户从您的应用共享页面。还要考虑 Activity 生命周期,以及配置更改时会发生什么。多看here,看下图:
从架构的角度来看,我建议如下:
实施本地数据库,并确保正确缓存您的网络请求。这将使您能够更快地获得结果和离线就绪的应用程序。在您的 UI 和数据源之间,按照以下行实施存储库模式: