2014-12-05 86 views
0

我遇到了一个问题,我解决了问题。我的应用程序有两种类型的片段。当应用程序启动时,带有主菜单的片段被添加到我用作片段容器的FrameLayout。这个片段占据整个屏幕。然后,当我选择菜单中的一个项目时,应将相应的片段加载到容器中,替换菜单。但是,这个片段只能从左边开始占据屏幕的四分之一,并且外部空间将被其他片段使用。如何轻松地切换碎片容器?

我在考虑制作3 FrameLayouts,一个用于左侧,一个用于右侧,另一个用于整个屏幕,但是这会对片段事务产生问题,因为我将不得不标注哪些片段是在哪里,并用手去除它们。

基本上我需要的是一些方法来改变我的碎片是否被加载到一个占满全屏的容器中,或一个只占用屏幕一部分的容器。我可能可以做到这一点与大量的痕迹和错误和一些代码,但我敢打赌,有一个非常简单的方法来做到这一点,我错过了机器人。

+0

**“...因为我将不得不保持哪些片段在哪里并用手去除它们的标签”**:这就是在使用片段时应该如何使用的,这就是为什么它们如此多才多艺。当然,多功能性的代价是,使用的碎片越多,不同的碎片布局越复杂,“后面的代码”就越复杂。使用Fragments并不是强制性的,如果你对处理复杂的Fragment容器布局感到不舒服,那么就按照howettl的建议使用不同的Activities。 – Squonk 2014-12-06 01:40:15

回答

2

与其试图将这些碎片动态加载到各个容器中,我会建议有两个不同的Activities

这听起来像主菜单片段将永远只出现在自己的全屏。所以,请完整填写Activity(我们称之为MainMenuActivity)。

第二个活动将有两个FrameLayout s作为内容,其中一个占据屏幕的四分之一,另一个占据剩余的3/4。在选择主菜单选项后加载第二个活动,并在第二个活动的onCreate()中填充片段。

从第二项活动中按下后退按钮将使用户返回到MainMenuActivity