【问题标题】:Communicate from ChildFragment to Parent when parent button's onClick当父按钮的 onClick 时从 ChildFragment 与父通信
【发布时间】:2021-07-05 11:08:02
【问题描述】:

我有一个父 Fragment 内部有一个 FragementContainerView,其中有不同片段的转换。 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 在子级之间共享数据,但仍然不知道如何通知子级将数据发送回父级。

【问题讨论】:

标签: android android-fragments viewmodel android-navigation fragmentmanager


【解决方案1】:

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

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

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

getChildFragmentManager().setFragmentResultListener...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-10-08
  • 2017-03-14
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多