我的用户界面分为两个区块,一个菜单面板始终相同,内容根据所选的菜单项而变化。
要动态更改内容片段,我必须用新的片段替换当前片段,如此SO问题中所述:Replacing a fragment with another fragment inside activity group
问题是“当前”片段不仅是一个片段,而且是两个:面板和内容。因此,如果我尝试替换我假设两个片段将被新的内容片段替换,这不是我想要的。
有没有办法用去除其他现有片段替换一个特定片段,如果有的话?谢谢。
答案 0 :(得分:0)
您可以使用FragmentTransaction#replace方法轻松替换单个片段。 假设您要替换Framelayout中的片段,可以按如下所示进行:
getFragmentManager().beginTransaction()
.replace(R.id.container, newFragment, null).commit();
这里R.id.container是FrameLayout的id,newFragment是你要放在布局中的片段。
答案 1 :(得分:0)
我猜你必须在内容块中有两个片段。对于第一个片段,您将设置权重为1,以便它占据整个内容块,除非您希望块中的第二个片段可见。您将设置内容块中第二个片段的可见性为“消失”,如果您只想要一个片段可见,或者给它一些重量或布局宽度和布局高度,使两个片段都可见。