如何解决当父按钮的 onClick 时,从 ChildFragment 与 Parent 通信
我有一个父 Fragment
,它包含一个 FragementContainerView
,其中有不同 Fragment 的转换。 parentFragment 有一个按钮,单击该按钮时,它必须从容器视图内的不同子片段中收集所有数据。我正在使用 Navigation
组件和 FragmentResultAPI
,第一个用于片段导航/转换,最后一个用于从子级到父级获取结果。我知道如何将孩子的数据返回给父母,但我不知道如何通知孩子将数据发回。我发现了这个:
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
我知道这是传统方式,但我想知道有没有更现代的方式,或者我们称之为导航方式。
父片段属于 main_graph_nav
,但所有子片段都属于不同的 nested_graph_nav
。所以我有一个范围的 ViewModel
来在孩子之间共享数据,但仍然不知道如何通知孩子将数据发送回父母。
解决方法
我最终决定在子代码中搜索父级的FragmentManager,以便通过调用来设置Fragment结果:
getParentFragment().getParentFragmentManager().setFragmentResult...
在父代码中通过以下方式获取结果:
getChildFragmentManager().setFragmentResultListener...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。