gpt4 book ai didi

android - fragment 在后退按钮上重叠

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:54:42 24 4
gpt4 key购买 nike

我创建了 3 个 fragment ,即(FragmentA、FragmentB、FragmentC)和一个 MainActivity。每个 fragment 中都有一个按钮,它会用下一个 fragment 替换自己,直到 FragmentC。

我正在替换 FragmentA(用)FragmentB(然后用)FragmentC。

从 FragmentA 到 FragmentB 的事务使用以下函数

    @Override
public void fragmentreplacewithbackstack(Fragment fragment, String tag) {

FragmentManager fragmentManager=getSupportFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.contner,fragment , tag);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
// fragmentManager.executePendingTransactions();

}

从 FragmentB 到 FragmentC 的事务使用下面的函数

public void fragmentreplace(Fragment fragment,String tag){
FragmentManager fragmentManager=getSupportFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.contner,fragment , tag);
fragmentTransaction.commit();

}

问题是当我从 FragmentC 按下后退按钮时,FragmentC 和 FragmentA 相互重叠。

As below screen

最佳答案

如果你想从这里返回 fragment B,你还需要将 fragment C 添加到 backstack。

因此也为 Fragment C 调用下面的代码。

 fragmentTransaction.addToBackStack(null);

编辑 - 更改您当前使用的从 B 到 C 的方法,

public void fragmentreplace(Fragment fragment,String tag){
FragmentManager fragmentManager=getSupportFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.contner,fragment , tag);
fragmentTransaction.addToBackStack(null); //this will add it to back stack
fragmentTransaction.commit();
}

关于android - fragment 在后退按钮上重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22068552/

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