raj*_*kar 8 android overlap overlapping android-fragments back-stack
我创建了3个片段(FragmentA,FragmentB,FragmentC)和一个MainActivity.每个片段中都有一个按钮,它将自己替换为FragmentC的下一个片段.
我正在替换FragmentA(with)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();
}
Run Code Online (Sandbox Code Playgroud)
从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();
}
Run Code Online (Sandbox Code Playgroud)
问题是当我从FragmentC按下按钮时,FragmentC和FragmentA相互重叠.
你需要将碎片C添加到backstack,如果你想从这里回到Fragment B.
因此,请将以下内容称为Fragment C.
fragmentTransaction.addToBackStack(null);
Run Code Online (Sandbox Code Playgroud)
编辑 - 更改当前用于从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();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6883 次 |
最近记录: |