Android:一个片段在一个页面上变成两个片段

时间:2015-05-18 10:06:22

标签: android fragment

我有一个活动,其中包含一个占据整个屏幕的片段。在应用程序流程中的某个时刻,用户可以转到由两个单独片段组成的同一活动中的另一个屏幕。所以你可以把它想象成:

片段A(屏幕的100%) - >片段B(50%)+片段C(50%)

我可以想到两种方法,其中一种方式都不是特别好。第一种是为活动设置一个布局,其中包含一个容纳片段A的容器,然后在其中包含片段A打开的子片段B和C.我试图避免使用subfragments,因为它会导致不寻常的生命周期错误,并且所有版本的api都不支持它。

第二种方法是为活动设置两个布局 - 一个布局有一个容器,第二个布局有两个容器,然后在适当的时候用setcontentview在它们之间切换。我不得不承认我对这个解决方案也不太满意,因为这意味着用户会看到屏幕重绘为白色而不是很好的过渡效果。

有没有人对如何最有效地做到这一点有任何建议?请注意,我确实希望所有内容都保留在一个活动中 - 从逻辑上讲,它应该是这样的。这个UI运动有两个单独的活动没有逻辑点。

1 个答案:

答案 0 :(得分:1)

通过使用两个容器并将顶部容器设置为wrap_content高度来解决,visibility = invisible并且根本不填充它。当我需要移动到两个窗格设置时,我填充了invisibile容器,并将其可见性设置为visible,从而使其重新测量。从两个窗格向后移动到单个窗格时,请在填充顶部窗格的片段上调用remove。