【Android Studio】fragment管理
add()
FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.add(R.id.fragment_container, fragment, "fragment"); transaction.commit();
replace()
FragmentA fragment = new FragmentA(); getSupportFragmentManager().beginTransaction() .replace(R.id.XXX, fragment,"fragment") .commit();
add和replace的区别是:
①add 是往container容器里堆加fragment View;replace是将container容器里之前添加的View全部清除,然后再添加当前fragment View
一定要记住,replace清除的是container的视图,而不是fragment实例, remove移除的才是fragment实例
②add后期可以使用show,hide操作,但是replace不可以,原因见①
③使用add,回滚时,fragment不会重新加载,曾经的操作痕迹还存在,使用replace回滚时,之前的fragment会重新加载,原因见①
使用add的时候还有一点需要注意的是,视图重叠的问题,记得设置背景色add 和 replace 千万不要混合使用,否则会出错

浙公网安备 33010602011771号