Fragment的使用
直接在布局文件中使用
在布局文件中设置<fragment> 标签,设置标签对应的Fragment类的name 即可
动态添加
在Activity中利用FragmentTransaction 的 replace ,add, remove ,hide ,show 方法来动态的 添加删除隐藏显示Fragment ,需要在Activity的Layout 中有FrameLayout
Fragment重叠异常
原因
1、发生了页面重启(旋转屏幕、内存不足等情况被强杀重启)。
FragmentManager帮我们管理Fragment,当发生“内存重启”,他会从栈底向栈顶的顺序一次性恢复Fragment;
2、重复replace|add Fragment 或者 使用show , hide控制Fragment。
在onCreate中加载Fragment,并且没有判断saveInstanceState==null,导致重复加载了同一个Fragment导致重叠。
解决方式
添加Fragment 的时候绑定一个tag,这样当Activity重启的时候利用Fragmentmanager的 findFragmentByTag方法找到对应的Fragment,然后hide(),show()对应的Fragment
也可以利用getFragments()可以获取到当前FragmentManager管理的栈内所有Fragment,然后再对每一个Fragment分别处理。