【问题标题】:implementing like/dislike functionality in android在android中实现喜欢/不喜欢的功能
【发布时间】:2021-03-20 07:35:08
【问题描述】:

目前我正在构建一个像 instagra 这样的应用程序,其中我有一个活动和许多片段,如家庭、搜索、用户个人资料等

我在项目中使用 MVVM,如下图所示,我的 home 片段是第一个,第二个是用户配置文件片段

在主页上有用户创建的帖子。当我点击用户名时,它会转到用户个人资料。

这里的问题是,当我喜欢用户片段中的一个帖子时,我将类似图标更改为填充红色的类似图标,然后我向我的后端 rest api 服务器发送请求。但是当我按下返回按钮并返回主页片段时,因为我只更改用户个人资料片段中的图标,主页片段不知道我喜欢的帖子,这就是为什么它显示帖子不喜欢(它只知道我什么时候手动刷新页面,因为新数据自带刷新)

我怎样才能以正确的方式实现它?

【问题讨论】:

  • 为了更好的答案,你应该在这里发布sn-ps的代码:但是你按下后退按钮后需要做什么,你必须重新初始化负责家庭的viewModel覆盖 onResume 函数中的片段。
  • 您是否通过 nav_graph 使用 NavController 来实现这个?您可以在后按/操作栏单击时将 navArgs 中的数据作为任何布尔参数传递,或者如果项目是您想要刷新主页片段中的列表项目或完全刷新页面的项目位置的有限列表。

标签: android android-fragments mvvm android-recyclerview android-jetpack-navigation


【解决方案1】:

您有多种选择:

  1. 在 Fragments 之间进行通信并执行获取/刷新(我不喜欢这样,因为它会消耗网络)
  2. 创建一个具有内存缓存的作用域对象,用于存储项目及其类似状态。您可以在此处使用StateFlow 或其他设计为响应式的流。

对于作用域对象,您还有多种选择:

  1. 导航图或活动范围ViewModel
  2. @Singleton 或其他自定义范围 Repository

如果有不清楚的地方,很乐意详细回答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-26
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多