gpt4 book ai didi

android - 在单个 Activity 中交换 fragment ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:16 26 4
gpt4 key购买 nike

在平板电脑上,我们有两个彼此相邻的 fragment (同一数据的两个不同 View )。在移动设备上,我们希望通过按下按钮在这两个 fragment 之间切换。移动布局看起来像这样:

<RelativeLayout>
<fragment id="container" name="fragA"/>
<ImageButton onClick="swapFragments" />
</RelativeLayout>

在 Activity 的 swapFragments(View) 方法中,我尝试使用 FragmentManagerfragA 替换为 fragB:

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new FragB());
fragmentTransaction.commit();

...但是我总能通过fragB的透明部分看到fragA,让我相信它只是把fragB放在fragA 的顶部,而不是替换它。

我开始尝试在事务中使用 hide(Fragment) 和类似方法,但这看起来不是正确的方法。

关于如何以正确的方式交换这些 fragment 有什么技巧吗?

编辑:我看到了this question的答案.不过,这让我感到困惑,因为我需要能够为平板电脑和手机指定不同的布局。如果我必须以编程方式添加 fragment ,我如何避免代码特定于 Activity 中的每个布局(即

 if(TABLET) {
addFragmentA();
addFragmentB();
} else {
addFragmentA();
}

最佳答案

不要混合使用 XML 和代码创建的 fragment - 会发生不好的事情。在布局中保留一个容器 View ,然后向其中添加/替换 fragment (不要在其中包含第一个 fragment )。

关于android - 在单个 Activity 中交换 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6360954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com