【发布时间】:2011-06-15 16:22:01
【问题描述】:
在平板电脑上,我们有两个相邻的片段(相同数据的两个不同视图)。在移动设备上,我们希望通过按一下按钮在这两个片段之间切换。移动布局如下所示:
<RelativeLayout>
<fragment id="container" name="fragA"/>
<ImageButton onClick="swapFragments" />
</RelativeLayout>
在活动的swapFragments(View) 方法中,我尝试使用FragmentManager 将fragA 替换为fragB:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new FragB());
fragmentTransaction.commit();
...但是我总是可以通过fragB 的透明部分看到fragA,这让我相信它只是将fragB 放在fragA 之上,而不是替换它。
我开始在事务中使用hide(Fragment) 和类似方法,但这看起来不是正确的方法。
关于如何正确交换这些片段的任何提示?
编辑:我看到了this question 的答案。不过,这让我很困惑,因为我需要能够为平板电脑和手机指定不同的布局。如果我必须以编程方式添加片段,如何避免特定于活动中每个布局的代码(即
if(TABLET) {
addFragmentA();
addFragmentB();
} else {
addFragmentA();
}
【问题讨论】:
-
你找到解决这个问题的方法了吗?
标签: android layout android-fragments