gpt4 book ai didi

android-viewmodel - Android Navigation 组件与 Viewmodel 的交互会如何?

转载 作者:行者123 更新时间:2023-12-01 00:17:59 25 4
gpt4 key购买 nike

Android Viewmodel 可以具有 Activity 或 Fragment 的范围/生命周期,但是这将如何在 Navigation 组件中工作?

考虑我是否有以下情况:

主要事件
- 包含 NavHostFragment

客户列表片段
- 导航的起点
- 单击列表中的任何客户,将导航 CustomerDetailsFragment

客户详情片段
- 包含一个带有 3 个片段的选项卡:CustomerDetailFragment、CustomerContactFragment 和 CustomerOrderHistoryFragment

CustomerDetailFragment
- 显示客户的一般信息,例如姓名、年龄、性别等...
- 从 CustomerViewModel 获取数据

客户联系片段
- 显示客户地址、电话、传真等
- 从 CustomerViewModel 获取数据

客户订单历史片段
- 显示客户的订单历史
- 从 OrderHistoryViewModel 获取数据

在上述场景中,是否可以为 CustomerDetailFragment 和 CustomerContactFragment 共享同一个 CustomerViewModel 实例?

如果我没有使用导航组件,我可以让 CustomerDetailsFragment 成为一个事件并将我的 View 模型初始化到该事件,但是由于在导航中我们只有片段,我怎样才能最好地实现这一点?

我虽然:

公共(public)类 CustomerDetailsFragment 扩展片段 {
...
CustomerViewModel 模型 = ViewModelProviders.of(this).get(CustomerViewModel .class);
...

但是如何将 View 模型的这个实例传递给 CustomerDetailFragment 和 CustomerContactFragment?

还是有更好的方法来构造上面的代码以达到相同的结果?

最佳答案

您可以使用 parentFragment作为店主。在您的 Detail 中调用此电话和 Contact碎片。

CustomerViewModel model = ViewModelProviders.of(getParentFragment()).get(CustomerViewModel.class);

关于android-viewmodel - Android Navigation 组件与 Viewmodel 的交互会如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50939919/

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