【问题标题】:communication between 2 fragments2个片段之间的通信
【发布时间】:2020-10-31 02:45:10
【问题描述】:

framentA 通过一个母 Activity 调用 FragmentB。 FragmentA 不再在内存中。 FragmentB 调用 fragmentA(返回上一屏幕)。 FragmentB 有一些数据要与 FragmentA 共享。但是,怎么做?

这是我尝试过的: 静态变量 - 它工作,但一个坏习惯,我不能使用它 viewModel - 每个片段创建它自己的视图模型实例。因此 viewModel 的 2 个实例将不起作用。 DB - 不是一个好的模式。所以我不能用它。

【问题讨论】:

  • 这里一个很常见的模式是共享视图模型的范围为包含活动。

标签: android kotlin


【解决方案1】:

我认为您需要将片段存储在片段管理器中,当您这样做时,您基本上是在尝试维护片段的回栈:

FragmentManager fragmentManager = getSupportFragmentManager();
//or FragmentManager fragmentManager = getFragmentManager();

fragmentManager.beginTransaction()
                     .add(FragmentToBeAdded, "textRelatedtoFragment")
                     .addToBackStack(null)
                     .commit();

添加到后台堆栈有助于保存片段的状态。

【讨论】:

    【解决方案2】:

    我的建议是:

    片段导航使用:https://developer.android.com/guide/navigation/navigation-getting-started 它将大大简化您的应用内导航。

    用于在 Fragments/Activity 之间传递参数:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多