当 parent 按钮的 onClick 时从 ChildFragment 与 Parent 通信

Communicate from ChildFragment to Parent when parent button's onClick

我有一个 parent Fragment,里面有一个 FragementContainerView,其中有不同片段的过渡。 parent 片段有一个按钮,单击该按钮时,它必须从容器视图内的不同 children 片段收集所有数据。我正在使用 Navigation 组件和 FragmentResultAPI,第一个用于片段 navigation/transition,最后一个用于获取从 children 到 parent 的结果。我知道如何return将数据从children返回到parent,但我不知道如何通知children发送回数据。我发现了这个:

View view = inflater.inflate(R.layout.parent_fragment, container, false);
MyFirstChildFragment fragment = (MyFirstChildFragment) getChildFragmentManager().findFragmentById(R.id.child_fragment_id);
fragment.heyChildrenGiveMeYourDataBack(); //on Button click listener

我知道这是传统方式,但我想知道是否有更现代的方式,或者,我们称之为 导航方式

parent 片段属于 main_graph_nav,但所有 children 属于不同的 nested_graph_nav。所以我有一个范围 ViewModel 在 children 之间共享数据,但仍然不知道如何注意到 children 将数据发送回 parent.

我最终决定在子代码中搜索父代码的 FragmentManager,以便通过调用设置 Fragment 结果:

getParentFragment().getParentFragmentManager().setFragmentResult...

并在父代码中通过以下方式获得结果:

getChildFragmentManager().setFragmentResultListener...