【发布时间】: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 在子级之间共享数据,但仍然不知道如何通知子级将数据发送回父级。
【问题讨论】:
-
考虑使用事件总线。 greenrobot.org/eventbus
标签: android android-fragments viewmodel android-navigation fragmentmanager