所以我决定让我的应用程序只有一个Activity。在我的一个片段中(fragment(A)
)我通过单击Button open BS
打开了bottom sheet
。现在,在底部表单中,有一个FragmentContainerView
,其中包含两个片段,我想单击此FragmentContainerView
中的Button B
(在fragment(B)
中),将fragment(A)
更改为fragment(C)
并关闭底部表单。
我知道,通过使用下面的代码,可以交换片段并关闭底部工作表(这里,我单击FragmentContainerView
外部的按钮,但仍在底部工作表内部):
ButtonSH.setOnClickListner{
parentFragmentManager.commit {
// replace fragment
replace<FragmentC>(R.id.fragment_container_that_holds_fragmets_A_and_C)
}
// close bottom sheet
dismiss()
}
但我就是不明白如何通过在fragment(b)
中的FragmentContainerView
内单击Button B
来做同样的事情。
如果有关系的话,fragment(A)
并不是直接在活动内部,它是在其他几个碎片内部。
下面是一张图片,以便更好地理解:
1条答案
按热度按时间qnyhuwrf1#
因此我的解决方案是为底部表单及其片段创建sharedViewModel,并为保存片段(A)的容器和底部表单使用另一个sharedViewModel。我观察到viewModel中的变量替换片段。有关官方文档,请访问this